我想获得一个日期对象,它比另一个日期对象晚30分钟。我如何用JavaScript做到这一点?


当前回答

只是另一个选项,我写的:

DP_DateExtensions图书馆

如果这是您所需要的所有数据处理,那么它就太过了,但它会做您想做的事情。

支持日期/时间格式化,日期数学(添加/减去日期部分),日期比较,日期解析等。它是自由开源的。

其他回答

新日期() var newDateObj =新日期(); (+ 30 * 60 * 1000); 游戏机。log (newDateObj);

最简单的解决方法是认识到在javascript中日期只是数字。它开始于1969年12月31日星期三18:00:00 GMT-0600 (CST)。每1代表一毫秒。您可以通过获取值并使用该值实例化一个新日期来增加或减少毫秒数。用这种思维,你很容易就能搞定。

const minutesToAdjust = 10;
const millisecondsPerMinute = 60000;
const originalDate = new Date('11/20/2017 10:00 AM');
const modifiedDate1 = new Date(originalDate.valueOf() - (minutesToAdjust * millisecondsPerMinute));
const modifiedDate2 = new Date(originalDate.valueOf() + (minutesToAdjust * millisecondsPerMinute));

console.log(originalDate); // Mon Nov 20 2017 10:00:00 GMT-0600 (CST)
console.log(modifiedDate1); // Mon Nov 20 2017 09:50:00 GMT-0600 (CST)
console.log(modifiedDate2); // Mon Nov 20 2017 10:10:00 GMT-0600 (CST)

以下是ES6版本:

let getTimeAfter30Mins = () => {
  let timeAfter30Mins = new Date();
  timeAfter30Mins = new Date(timeAfter30Mins.setMinutes(timeAfter30Mins.getMinutes() + 30));
};

这样称呼它:

getTimeAfter30Mins();

您应该获取当前日期的值以获得日期(ms),并向其添加(30 * 60 *1000)。现在你有(当前日期+ 30分钟)ms

console.log('with ms', Date.now() + (30 * 60 * 1000)) console.log('new Date', new Date(Date.now() + (30 * 60 * 1000)))

只是另一个选项,我写的:

DP_DateExtensions图书馆

如果这是您所需要的所有数据处理,那么它就太过了,但它会做您想做的事情。

支持日期/时间格式化,日期数学(添加/减去日期部分),日期比较,日期解析等。它是自由开源的。