2017-09-15 298 views
2

我有2 DateTime字段在一種形式,我希望在這兩個領域的差異在一分鐘。日期時間差在幾分鐘

我試圖解析DateTimeDate,但它不工作:

<script> 
    $(document).ready(function() { 
     $("#mybundle_evenement_button").click(function() { 
      var field1 = $("#mybundle_evenement_debut").val(); 
      var field2 = $("#mybundle_evenement_fin").val(); 
      var date1 = new Date(field1); 
      var date2 = new Date(field2); 
      alert(date1); 
     }); 
    }); 
</script> 

如果我alert() DATE1,它顯示Invalid Date。 但是,如果我alert() field1,它顯示15/09/2017 13:32(格式是:天/月/年小時:分鐘)。

new Date(field1)由於格式可能不起作用嗎?

我知道,如果我成功地將DateTime解析爲Date,它很容易在幾分鐘內產生差異,但我不明白爲什麼它說Invalid Date

回答

1

dd/MM/yyyy HH:mm不是Date.parse()

有效的日期格式,你有你的日期格式爲有效Date Time String Format,例如:如預期的問題是格式

var field1 = $("#mybundle_evenement_debut").val(); 

var ISODate1 = field1.replace(/(\d+)\/(\d+)\/(\d+)/, "$3-$2-$1") 

var date1 = new Date(ISODate1); 

alert(date1) // => Fri Sep 15 2017 13:32:00 ... 
+0

謝謝!有用 –

0

這取決於您的瀏覽器。我建議使用的標準格式是'2013/12/09 10:00'。 好的!來點。您需要手動格式化來自我最近回答的有關同類問題的日期。請看看這個鏈接:Stange javascript Date behaviour on particular dates


而且你可以試試這個下面的代碼獲得以分鐘爲單位的時間差。


 
var startTime = new Date('2013/12/09 10:00'); 
 
var endTime = new Date('2014/12/09 10:00'); 
 
var difference = endTime.getTime() - startTime.getTime(); 
 
var result = Math.round(difference/60000); 
 

 
alert(result); 
 

+0

確定。格式是dd/mm/yy,因爲我想要。在法國,我們有第一天。我會嘗試讓標準格式使用Date(myDate)。 –

+0

是的!但如果你想你可以手動格式化數據從我提到的鏈接在我的答案@BastienNicolau –

0

的問題是關於你正在從外地日期的格式。 new Date()不接受這種格式。我認爲最好的是自己解析string。如果格式總是相同,只需使用new Date(year, month, day, hours, minutes, seconds, milliseconds)

var day = field.splice(0,2); field.splice(0,1); 
var month = field.splice(0,2); field.splice(0,1); 
var year = field.splice(0,2); field.splice(0,1); 
var hour = field.splice(0,2); field.splice(0,1); 
var minute = field.splice(0,2); 
相關問題