js 如何实现时间相减得到所需的小时差

gaolaotougs 2013-04-24 10:01:45
看到过实现天数 ,月数的代码 不过小时差却不知道怎么搞,求大家帮忙!
...全文
1940 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
functionsub 2013-04-24
  • 打赏
  • 举报
回复
引用 6 楼 gaolaotougs 的回复:
引用 2 楼 functionsub 的回复:还不是一样的么。。 JavaScript code ? 1234567891011121314 var date1 = new Date('2013/04/02 18:00') var date2 = new Date('2013/04/02 19:22:21') var s1 = da……
getTime在第四行。 字符串转Data在前两行,必须要特定格式的字符串,你那样不行。要先对字符串做预处理 处理成2012/01/01 12:00这样的格式。这个不难,自己解决下。
gaolaotougs 2013-04-24
  • 打赏
  • 举报
回复
引用 2 楼 functionsub 的回复:
还不是一样的么。。 JavaScript code ? 1234567891011121314 var date1 = new Date('2013/04/02 18:00') var date2 = new Date('2013/04/02 19:22:21') var s1 = date1.getTime(),s2 = date2.getTime(); ……
你的getTime函数呢?我的日期格式是2013-1-1 12:00
functionsub 2013-04-24
  • 打赏
  • 举报
回复
你拿出来的日期格式是字符串,不能减,js虽然是弱类型,也不是没类型。
gaolaotougs 2013-04-24
  • 打赏
  • 举报
回复
引用 1 楼 kevinwon1985 的回复:
两个时间相见得到的是毫秒差..需要小时的话..自己在换算下咯..一小时=60*60*1000
我是2013-1-1 12:00的日期格式 怎么减 我用date1.value - date2.value 得不到所需的值
gaolaotougs 2013-04-24
  • 打赏
  • 举报
回复
引用 2 楼 functionsub 的回复:
还不是一样的么。。 JavaScript code ? 1234567891011121314 var date1 = new Date('2013/04/02 18:00') var date2 = new Date('2013/04/02 19:22:21') var s1 = date1.getTime(),s2 = date2.getTime(); ……
年和天我都已经有了 只是算小时不知道,呵呵。。。
functionsub 2013-04-24
  • 打赏
  • 举报
回复
还不是一样的么。。
var date1 = new Date('2013/04/02 18:00')
var date2 = new Date('2013/04/02 19:22:21')

var s1 = date1.getTime(),s2 = date2.getTime();
var total = (s2 - s1)/1000;


var day = parseInt(total / (24*60*60));//计算整数天数
var afterDay = total - day*24*60*60;//取得算出天数后剩余的秒数
var hour = parseInt(afterDay/(60*60));//计算整数小时数
var afterHour = total - day*24*60*60 - hour*60*60;//取得算出小时数后剩余的秒数
var min = parseInt(afterHour/60);//计算整数分
var afterMin = total - day*24*60*60 - hour*60*60 - min*60;//取得算出分后剩余的秒数
console.log([day,hour,min,afterMin].join(':'))
当然我这里只是算到天,没算年,道理是一样的,算法自己优化一下。
地狱羔羊 2013-04-24
  • 打赏
  • 举报
回复
两个时间相见得到的是毫秒差..需要小时的话..自己在换算下咯..一小时=60*60*1000
oxfed 2013-04-24
  • 打赏
  • 举报
回复
这都不思考,有可能进步?
oxfed 2013-04-24
  • 打赏
  • 举报
回复
弱爆了。。。。。
地狱羔羊 2013-04-24
  • 打赏
  • 举报
回复
=,=这个你要先把你的字符串解析成Date对象咯。。 最简单的是你服务端不要返回这种日期格式..直接返回日期的数字值.就可以直接new Date(value)来得到Date对象..然后两个Date对象可以直接用减法的..不需要调用getTime()方法
引用 4 楼 gaolaotougs 的回复:
引用 1 楼 kevinwon1985 的回复:两个时间相见得到的是毫秒差..需要小时的话..自己在换算下咯..一小时=60*60*1000 我是2013-1-1 12:00的日期格式 怎么减 我用date1.value - date2.value 得不到所需的值

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧