我正在尝试使用 javascript 确定两个日期之间经过的时间。例如:“我在 2008 年 1 月 5 日凌晨 3 点戒烟,我戒烟已经过去了多少年、几个月和几小时?”。
所以我的想法是:
- 获取“退出”日期
- 获取当前日期
- 转换为时间(毫秒)
- 找出差异
- 使用差异创建新日期
- 从该日期提取年、月等
好吧,它表现得很奇怪,我无法指出原因。有什么见解吗?
//create custom test date
var d1 = new Date(2012, 8, 28, 13, 14, 0, 0);
//create current date
var d2 = new Date();
//get date times (ms)
var d1Time = (d1.getTime());
var d2Time = (d2.getTime());
//calculate the difference in date times
var diff = d2 - d1;
//create a new date using the time differences (starts at Jan 1, 1970)
var dDiff = new Date();
dDiff.setTime(diff);
//chop off 1970 and get year, month, day, and hour
var years = dDiff.getFullYear() - 1970;
var months = dDiff.getMonth();
var days = dDiff.getDate();
var hours = dDiff.getHours();
您可以在这个临时主机上看到它的运行情况。