我想获得一个日期对象,它比另一个日期对象晚30分钟。我如何用JavaScript做到这一点?
当前回答
“添加”30分钟的一种方法是创建第二个日期对象(主要用于演示),并将分钟设置为分钟+ 30。如果第一次距离下一个小时不到30分钟,这也可以考虑调整时间。(即4:45至5:15)
const first = new Date(); console.log("第一次约会:",first. tostring ()); const second =新的日期(第一个); const newMinutes = second.getMinutes() + 30; console.log("new minutes:", newMinutes); second.setMinutes (newMinutes); console.log("second date:", second. tostring ());
其他回答
也许像这样?
var d = new Date(); var v = new Date(); v.setMinutes (d.getMinutes () + 30); console.log (v)
最简单的解决方法是认识到在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)
这就是我所做的,似乎很有效:
Date.prototype.addMinutes = function(minutes) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + minutes * 60000);
}
然后你可以这样调用它:
var now = new Date();
console.log(now.addMinutes(50));
新日期() var newDateObj =新日期(); (+ 30 * 60 * 1000); 游戏机。log (newDateObj);
我知道这个话题太老了。但是我非常确定有一些开发人员仍然需要这个,所以我为您制作了这个简单的脚本。 希望你喜欢!
你好,现在是2020年,我做了一些修改,希望现在能更好地帮助你!
你好,现在是2022年,我又回来解决了一些问题,并为方法和函数提供了更好的命名。
function addTimeToDate(addedTime, date){ let generatedTime = date.getTime(); if(addedTime.seconds) generatedTime += 1000 * addedTime.seconds; //check for additional seconds if(addedTime.minutes) generatedTime += 1000* 60 * addedTime.minutes;//check for additional minutes if(addedTime.hours) generatedTime += 1000 * 60 * 60 * addedTime.hours;//check for additional hours return new Date(generatedTime); } Date.prototype.addTime = function(addedTime){ return addTimeToDate(addedTime, this); } let futureDate = new Date().addTime({ hours: 16, //Adding one hour minutes: 45, //Adding fourty five minutes seconds: 0 //Adding 0 seconds return to not adding any second so we can remove it. }); <button onclick="console.log(futureDate)">Travel to the future</button>
推荐文章
- JavaScript在数组中
- 在Java中转换字符串到日历对象
- 如何从JavaScript中使用正则表达式的字符串中剥离所有标点符号?
- 如何修改标签文本?
- 如何获得十六进制颜色值而不是RGB值?
- 字符串strip() JavaScript?
- 如何将一个标题转换为jQuery的URL段塞?
- 获取对象的第一个索引
- 我如何用javascript编程点击链接?
- JavaScript:客户端验证与服务器端验证
- React钩子:从回调中访问最新状态
- 使用lodash将对象转换为数组
- 打印在 JsFiddle 中
- AngularJS只适用于单页应用程序吗?
- Javascript和regex:分割字符串并保留分隔符