起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5266|回复: 11

[结贴] JS处理两个时间类型的值相减

  [复制链接]

63

主题

244

帖子

430

积分

中级会员

Rank: 3Rank: 3

积分
430
QQ
发表于 2014-5-14 10:30:14 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
有两个字段  开始时间和结束时间 都是放在dataMain数据源中。都是时间类型
要求:用结束时间减去开始时间 求出用时(单位:分钟)。用时是浮点型。

怎么实现,希望给出代码,JS中取值和赋值 还不熟练 ,急求!!

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-5-14 10:32:32 | 显示全部楼层
参考《时间日期使用》:http://bbs.justep.com/thread-40996-1-1.html
QQ:179785966
回复 支持 反对

使用道具 举报

9

主题

395

帖子

1042

积分

金牌会员

Rank: 6Rank: 6

积分
1042
QQ
发表于 2014-5-14 10:35:38 | 显示全部楼层
var data = justep.xbl('数据源');
        var updateDate = data.getValue('fReporedDate');
        var stopDate = data.getValue('fShippedDate');
        var start = justep.Date.fromString(updateDate, 'yyyy-MM-dd');
        var stop = justep.Date.fromString(stopDate, 'yyyy-MM-dd');
        var a = justep.Date.diff(start, stop);
        alert("时间差为:" + a);



public static Number diff( start, end, interval)
计算两个日期的差
参数:
start {Date} 起始日期
end {Date} 结束日期
interval {String} 时间单位,默认是以天为单位,'s'代表秒,'n'代表分钟,'h'代表小时 ,'d'代表天, 'w'代表 周 ,'m'代表月,'q'代表季度,'y'代表年
返回: Number 返回结果,如果起始日期小于结束日期返回正整数,否则返回负整数

评分

参与人数 1 +6 收起 理由
jishuang + 6 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

55

主题

242

帖子

790

积分

高级会员

Rank: 4

积分
790
QQ
发表于 2014-5-14 10:45:44 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

63

主题

244

帖子

430

积分

中级会员

Rank: 3Rank: 3

积分
430
QQ
 楼主| 发表于 2014-5-14 11:15:31 | 显示全部楼层
sue 发表于 2014-5-14 10:35
var data = justep.xbl('数据源');
        var updateDate = data.getValue('fReporedDate');
        var ...

我alert(start); 显示undefined  
回复 支持 反对

使用道具 举报

63

主题

244

帖子

430

积分

中级会员

Rank: 3Rank: 3

积分
430
QQ
 楼主| 发表于 2014-5-14 11:24:04 | 显示全部楼层
yinlun 发表于 2014-5-14 10:32
参考《时间日期使用》:http://bbs.justep.com/thread-40996-1-1.html

赋值转换成字符串的代码  提示:对象不支持此属性或方法
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-5-14 11:30:48 | 显示全部楼层
云随风舞 发表于 2014-5-14 11:24
赋值转换成字符串的代码  提示:对象不支持此属性或方法

把代码贴出来看看
QQ:179785966
回复 支持 反对

使用道具 举报

63

主题

244

帖子

430

积分

中级会员

Rank: 3Rank: 3

积分
430
QQ
 楼主| 发表于 2014-5-14 12:05:10 | 显示全部楼层
yinlun 发表于 2014-5-14 11:30
把代码贴出来看看

if(event.column == 'fJSSJ'){
                var data = justep.xbl('dataMain');
        var updateDate = data.getValue('fKSSJ');
        var stopDate = data.getValue('fJSSJ');
//        var start = justep.Date.fromString(new Date(),'yyyyMMddhhmmss');
//        var stop = justep.Date.fromString(stopDate,'yyyyMMddhhmmss');
                var start=justep.Date.toString(updateDate, justep.Date.STANDART_FORMAT_SHOT);
                var stop=justep.Date.toString(stopDate, justep.Date.STANDART_FORMAT_SHOT);
        alert(start);
        alert(stop);

        var a = justep.Date.diff(start, stop,'n');
      
        alert("时间差为:" + a);
        }
回复 支持 反对

使用道具 举报

45

主题

4492

帖子

3960

积分

论坛元老

Rank: 8Rank: 8

积分
3960
QQ
发表于 2014-5-14 12:21:54 | 显示全部楼层
云随风舞 发表于 2014-5-14 12:05
if(event.column == 'fJSSJ'){
                var data = justep.xbl('dataMain');
        var updateDate = data.ge ...

getValue返回的是string类型的,需要转换为Date,然后再用justep.Date.diff

从字符串转换成date类型
var str = justep.xbl("dataMaster").getValue('fApplyDate');
justep.Date.fromString(str,'yyyy-MM-ddThh:mm:ss');//转换成日期时间
justep.Date.fromString(str,'yyyy-MM-dd');// 转换成日期
justep.Date.fromString(str,'hh:mm:ss');// 转换成时间

1、使用时间格式常量  justep.Date.toString(new Date(), justep.Date.STANDART_FORMAT_SHOT)
定义了4种时间格式常量
justep.Date.DEFAULT_FORMAT
时间格式常量 = "yyyy/MM/dd hh:mm:ss"
justep.Date.DEFAULT_FORMAT_SHOT
时间格式常量 = "yyyy/MM/dd"
justep.Date.STANDART_FORMAT
时间格式常量 = "yyyy-MM-ddThh:mm:ss.000Z"
justep.Date.STANDART_FORMAT_SHOT
时间格式常量 = "yyyy-MM-dd"
2、使用自定义时间格式
justep.Date.toString(new Date(),'yyyy-MM-dd hh:mm:ss')


更多的日期操作见下面的贴子
http://bbs.justep.com/forum.php? ... &extra=page%3D1

评分

参与人数 1 +6 收起 理由
jishuang + 6 赞一个!

查看全部评分

向前进,向前进,我们……
回复 支持 反对

使用道具 举报

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-5-14 12:35:41 | 显示全部楼层
云随风舞 发表于 2014-5-14 12:05
if(event.column == 'fJSSJ'){
                var data = justep.xbl('dataMain');
        var updateDate = data.ge ...

你的这个updateDate和stopDate已经试string类型了,要转成日期类型才能使用diff
  1. var start=justep.Date.fromString(updateDate, 'yyyy-MM-ddThh:mm:ss');
  2. var stop=justep.Date.fromString(stopDate, 'yyyy-MM-ddThh:mm:ss');

  3. var a = justep.Date.diff(start, stop,'n');

  4. alert("时间差为:" + a);
复制代码

评分

参与人数 1 +6 收起 理由
jishuang + 6 赞一个!

查看全部评分

QQ:179785966
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-19 01:35 , Processed in 0.069092 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表