在JavaScript中添加两个日期时间 [英] Add two dates times together in javascript

查看:144
本文介绍了在JavaScript中添加两个日期时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图添加两个日期:

date start Fri Apr 26 2013 16:08:03 GMT+0100 (Paris, Madrid)
+  
date periode Fri Apr 26 2013 00:10:00 GMT+0100 (Paris, Madrid)

我使用这段代码:

var periode=$("#dure").val();
var start = $("#start").val()
var end =$("#end").val();


var dateStart= new Date(start);
console.log('start');
console.log(dateStart);

var date=dateStart.format('yyyy-mm-dd'); 
per=date+' '+periode;
var datePeriode= new Date(per);

console.log('datePeriode');
console.log(datePeriode);
var dateEnd= dateStart.getTime()+datePeriode.getTime();
console.log('dateEnd');
console.log(dateEnd);

在我的javascript控制台中,我得到:

In my javascript console I get:

dateDebut
Fri Apr 26 2013 16:33:11 GMT+0100 (Paris, Madrid)
datePeriode
Fri Apr 26 2013 00:15:00 GMT+0100 (Paris, Madrid)
dateEnd
2733922091000

解决方案,我错过了什么?

How can I fix that, am I missing something?

推荐答案

如果你想添加一个时间段到一个日期,你基本上必须转换两者都是毫秒。

If you want to add a time period to a date, you basically have to convert both of them into milliseconds.

var date = new Date();
var dateMillis = date.getTime();

//JavaScript doesn't have a "time period" object, so I'm assuming you get it as a string
var timePeriod = "00:15:00"; //I assume this is 15 minutes, so the format is HH:MM:SS

var parts = timePeriod.split(/:/);
var timePeriodMillis = (parseInt(parts[0], 10) * 60 * 60 * 1000) +
                       (parseInt(parts[1], 10) * 60 * 1000) + 
                       (parseInt(parts[2], 10) * 1000);

var newDate = new Date();
newDate.setTime(dateMillis + timePeriodMillis);

console.log(date); //eg: Fri Apr 26 2013 08:52:50 GMT-0700 (MST)
console.log(newDate); //eg: Fri Apr 26 2013 09:07:50 GMT-0700 (MST)

这篇关于在JavaScript中添加两个日期时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆