簡體   English   中英

如何在JavaScript中獲取兩個日期時間之間的時差?

[英]How to get time difference between two date time in javascript?

我想要兩個日期時間之間的持續時間。 我有開始日期,開始時間,結束日期和結束時間。 現在,我必須找到它們之間的區別。

實際上,我已經嘗試使用以下代碼,但是收到了“無效日期”之類的警報。

function myfunction()
{
    var start_dt = '2013-10-29 10:10:00';
    var end_dt = '2013-10-30 10:10:00';

    var new_st_dt=new Date(start_dt);
    var new_end_dt=new Date(end_dt);

    alert('new_st_dt:'+new_st_dt);
    alert('new_end_dt:'+new_end_dt);

    var duration=new_end_dt - new_st_dt;

    alert('duration:'+duration);
}

警報消息如下所示:

new_st_dt:invalid date 
new_end_dt: invalid date
duration:NaN

當我在android模擬器中運行時,收到了這些警報消息。

請幫我怎么得到它? 如何實現呢?

您正在向該Date()構造函數傳遞無效的ISO日期字符串。 它需要這樣的形式

YYYY-MM-DDThh:mm:ss

例如

2013-10-29T10:10:00

因此,您基本上忘記了將日期和時間分開的T 但是,即使瀏覽器現在讀入了ISO字符串,您也沒有unix時間戳進行計算。 你可以打電話

Date.parse( '2013-10-29T10:10:00' );  // returns a timestamp

或者您需要顯式解析Date對象 ,例如

var duration=(+new_end_dt) - (+new_st_dt);

進一步閱讀: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

嘗試將時間戳格式化為isoformat,以便javascript識別它們。 (您在日期和時間之間放置了“ T”)。 例如: '2013-10-29T10:10:00'

 function dateDiff(){
var start_dt = '2013-10-29 10:10:00';
var end_dt = '2013-10-30 10:10:00';

var d1= start_dt ;
d1.split("-");
var d2= end_dt ;
d2.split("-");
var t1 = new Date(d2[0],d2[1],d2[2]);
var t2 = new Date(d1[0],d1[1],d1[2]);
var dif = t1.getTime() - t2.getTime();
var Seconds_from_T1_to_T2 = dif / 1000;
return Math.abs(Seconds_from_T1_to_T2);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM