两个日期之间有几秒钟?


180

所以,我有两个日期YYYY-MM-DDZZZZ-NN-EE

我如何找出它们之间有多少秒?


173
我尝试在约会之间至少保留半小时,以免被抓住。
唐·布兰森

yyyy-MM-dd很清楚(年,月,日-请注意,它们并非全部大写),但ZZZZ-NN-EE并非如此。我将其解释为(时区,???,星期几)。是一年中的一周吗?如果是这样,那应该是ww。但是仍然需要年份来计算差异。您能提供一些实际的样品值吗?
BalusC,2010年

7
@BalusC:我相信他只是去了下一个字母来表示第二个日期(Y-> Z,M-> N和D-> E)。使用诸如startDate和endDate之类的变量名可能会更好。
奥斯丁·萨洛宁

知道了 确实可以更清楚地询问这一点。
BalusC 2010年

Answers:


242

我用YYYY和ZZZZ表示整数,表示年份,MM&NN表示整数,表示年份的月份,而DD&EE表示整数,表示月份的月份。

var t1 = new Date(YYYY, MM, DD, 0, 0, 0, 0);
var t2 = new Date(ZZZZ, NN, EE, 0, 0, 0, 0);
var dif = t1.getTime() - t2.getTime();

var Seconds_from_T1_to_T2 = dif / 1000;
var Seconds_Between_Dates = Math.abs(Seconds_from_T1_to_T2);

MDN网站是方便参考的来源

或者,如果您的日期采用javascript可以解析的格式

var dif = Date.parse(MM + " " + DD + ", " + YYYY) - Date.parse(NN + " " + EE + ", " + ZZZZ);

然后您可以将该值用作毫秒数的差值(在我的两个示例中,dif的含义相同)


1
仅示例中使用的模式不正确。4位数字的年份以小写字母表示yyyy,2位数字的月份以大写字母表示MM,2位数字的天以小写字母表示dd
BalusC,2010年

1
马丁,我的印象是这里没有使用任何日期模式。MM DD,YYYY和NN EE,ZZZZ实际上是Steven询问的“示例值”。因此,换句话说,他没有做任何格式化工作。
Wagner Silveira 2010年

我已经更新了第二个示例,我想这是每个人都感到困惑的地方。我还对我如何解释他的示例中给出的值进行了一些说明。
马丁

您的第二个变量需要调用t2
Kees C. Bakker

在大多数情况下,您可能会做t2-t1,而不是t1-t2
UpTheCreek 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.