简体   繁体   English

如何在JavaScript中获取两个日期时间之间的时差?

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

I want time duration between two date time. 我想要两个日期时间之间的持续时间。 I have the start date, start time, end date and end time. 我有开始日期,开始时间,结束日期和结束时间。 Now I have to find the difference between them. 现在,我必须找到它们之间的区别。

Actually I have tried with this following code, but I got the alert like 'invalidate date'. 实际上,我已经尝试使用以下代码,但是收到了“无效日期”之类的警报。

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);
}

the alert msg like as follows: 警报消息如下所示:

new_st_dt:invalid date 
new_end_dt: invalid date
duration:NaN

when I run in android simulator I got these alert messages. 当我在android模拟器中运行时,收到了这些警报消息。

Please help me how to get it? 请帮我怎么得到它? How to implement this? 如何实现呢?

You're passing an invalid ISO date string to that Date() constructor. 您正在向该Date()构造函数传递无效的ISO日期字符串。 It needs a form like 它需要这样的形式

YYYY-MM-DDThh:mm:ss

for instance 例如

2013-10-29T10:10:00

So you basically forgot the T to separate date and time. 因此,您基本上忘记了将日期和时间分开的T But even if the browser reads in the ISO string now, you would not have an unix timestamp to calculate with. 但是,即使浏览器现在读入了ISO字符串,您也没有unix时间戳进行计算。 You either can call 你可以打电话

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

or you need to explicitly parse the Date object , like 或者您需要显式解析Date对象 ,例如

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

Further read: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse 进一步阅读: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

Try formatting you timestamps as isoformat so javascript recognizes them. 尝试将时间戳格式化为isoformat,以便javascript识别它们。 (you put a "T" between the date and time). (您在日期和时间之间放置了“ T”)。 An example: '2013-10-29T10:10:00' 例如: '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.

相关问题 获取两个日期字符串之间的时差 - Get time difference between two date strings 如何获取两个日期和时间之间的差异并显示在 Javascript 中运行的时间 - How to get the difference between two date and times and show the time running down in Javascript 如何获取两种不同格式的日期之间的时差? - How to get time difference between two different formats of date? 如何获得 JavaScript 中时间序列上两个值之间的差异? - How to get the difference between two values on a time series in JavaScript? 如何在Javascript中获得两次之间的时差? - How to get the time difference between two times in Javascript? 如何获取Javascript中两个日期选择器值之间的时间跨度? - How to get the time span between two date picker values in Javascript? 获取两个时区之间的时差(JavaScript) - Get time difference between two time zones (Javascript) 如何使用给定的日期/时间获取JavaScript中的日期/时间差 - How to get date/time difference in javascript using given date/time 在 HH:MM:SS javascript 中计算两个日期之间的时差 - calculate time difference between two date in HH:MM:SS javascript 如何获得两个日期和时间之间的差异并显示时间流逝 - How to get the difference between two date and times and show the time running down
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM