如何在JavaScript中生成和操作Date对象?

时间:2016-12-26 20:29:56

标签: javascript date

我希望在另一个var下显示我的var值,这是我的例子。

var d = new Date();
var alldifftime = (d.getFullYear()+','+  d.getMonth()+','+  d.getDate()+','+  (d.getHours()-7)+','+  d.getMinutes()+','+  d.getSeconds());

var difftime = new Date() - new Date(Date.parse(new Date(alldifftime)));

如何成为

var difftime = new Date() - new Date(2016,11,26,19,41,48);

2016,11,26,19,41,48是现在。

感谢。

3 个答案:

答案 0 :(得分:2)

您共享的代码无法正常工作的原因是连接运算符将数字值转换为字符串。请尝试以下方法:

var d = new Date(),
    dYear = d.getFullYear(),
    dMonth = d.getMonth(),
    dDate = d.getDate(),
    dHours = d.getHours() - 7,
    dMinutes = d.getMinutes(),
    dSeconds = d.getSeconds();

// difftime will contain the time difference between the two dates in milliseconds
var difftime = new Date() - new Date(dYear, dMonth, dDate, dHours, dMinutes, dSeconds);

答案 1 :(得分:0)

如果你想获得两个日期之间的差异,那么使用momentjs更简化:http://momentjs.com/docs/#/displaying/difference/

var dateNow = moment();
var dateBefore = moment().subtract(7, 'hours');
var dateDiff = dateNow.diff(dateBefore, "hours");

答案 2 :(得分:0)

要获取第一次约会前7小时的日期,请复制日期并将小时数设置为7小时前。要获得两个日期之间的差异,只需从另一个中减去一个以获得毫秒差异并转换为您想要的任何时间单位(比如几小时):



// Now
var d0 = new Date();
// Copy for then
var d1 = new Date(d0);
d1.setHours(d1.getHours() - 7);
console.log('The time now: ' + d0.toString() + 
            '\n7 hours ago : ' + d1.toString());

console.log('Diff time: ' + ((d0 - d1)/3.6e6) + ' hours');