2012-03-02 95 views
1

我很難爲此獲得正確的解決方案,所以我現在需要您的幫助。javascript計算天數

date1 = "03/02/2012 09:51 pm" 

date2 = "03/04/2012 06:00 pm" 

將上述示例日期計算爲多少天差異。使用JavaScript。

+2

我們能看到你的錯誤的解決方法嗎? – 2012-03-02 10:22:24

+0

http://stackoverflow.com/questions/41948/how-do-i-get-the-difference-between-two-dates-in-javascript可能的重複? – fcalderan 2012-03-02 10:23:14

+0

爲什麼不使用.getDate()將2個日期保存在變量中並減去它們? – 2012-03-02 10:23:39

回答

2
var date1 = Date.parse("03/02/2012 09:51 pm"); 
var date2 = Date.parse("03/04/2012 06:00 pm"); 

var dayDiff = (date2/(1000*60*60*24)) - (date1/(1000*60*60*24)); 
+3

使用此項時,請注意您的日期字符串來自哪裏;如果美國本地化的機器生成字符串並且英國本地化的機器解析它,則可能會有不匹配。美國是月/日/年,英國是日/月/年。如果輸入是用戶,則需要考慮其語言環境。 – 2012-03-02 10:45:19

-1

刪除原帖,以修改和活用正確的答案

var date1 = new Date("2012-03-02"); 
var date2 = new Date("2012-04-15"); 
var daysDifference = new Date(date2 - date1); 
var daysDifference = daysDifference/1000/60/60/24; 
document.write(daysDifference); 

自己嘗試一下。

+1

您只計算日期。如果我將改變這個月怎麼辦? – 2012-03-02 10:35:46

+1

這忽略了本地化,月/年的變化,格式化的差異... – 2012-03-02 10:43:13

+0

你說的天差。我給你一個快速而骯髒的例子。如果你沒有正確地提出你的問題,那麼人們就不能給你你想要的答案。我會重做我的答案。 – Ohgodwhy 2012-03-02 10:43:47

0

在這種情況下,momentjs便於使用。您可以運行附加的代碼段查看結果。它可以讓你輕鬆地提取時差。此外,您可以使用多種文化和語言。

moment.locale('en'); 
 

 
var from = moment("2016-04-14 23:30"); 
 
var until = moment("2016-04-14 23:45"); 
 
var untilDay = moment("2016-04-15 03:45"); 
 
var untilMonth = moment("2016-03-14 06:33"); 
 

 
$('body').append(from.to(until) + "<br>"); 
 
$('body').append(from.to(untilDay) + "<br>"); 
 
$('body').append(from.to(untilMonth) + "<br>");
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script src="https://cdn.jsdelivr.net/momentjs/2.10.6/moment-with-locales.min.js"></script> 
 
    <script src="https://cdn.jsdelivr.net/momentjs/2.10.6/locales.min.js"></script> 
 
    <script src="https://code.jquery.com/jquery-1.11.3.js"></script> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
</head> 
 

 
<body> 
 

 
</body> 
 

 
</html>