2013-04-26 48 views
4

我想補充兩個日期:添加兩個日期時間一起在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控制檯,我得到:

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 

我該如何解決這個問題?我錯過了什麼嗎?

+5

添加兩個日期是什麼意思?什麼日期是「四月二十六日+四月二十六日」?日期與時間段不同。 – Barmar 2013-04-26 15:41:06

+1

這個問題沒有任何意義。您將時間段添加到日期(特定時間)。當你添加兩個日期時你期望得到什麼? – 2013-04-26 15:42:48

+0

我明白了,我如何添加16:33:11與periode 00:15:00? – 2013-04-26 15:45:10

回答

8

如果你想一個時間段添加到日期,你基本上要他們兩個轉換成毫秒。

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) 
+0

非常感謝Vivin Paliath – 2013-04-26 16:04:02

+0

@Takwach沒問題。 – 2013-04-26 16:10:05

+2

這是個玩笑嗎?爲什麼JavaScript不具備這樣基本的功能? – 2014-02-25 13:52:46

0

將datePeriod轉換爲毫秒,而不是將其轉換爲添加的日期對象。

您需要將總和轉換爲日期。自1-1-1970年以來,getTime()以毫秒爲單位。所以你想要做的。

var ending = new Date(); 
ending.setTime(dateEnd); 
console.log(ending); 

setTime會爲您正確設置日期。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/setTime

+0

不要使用DatePeriode日期,在將其添加之前將其轉換爲毫秒。 – Schleis 2013-04-26 16:02:32