JQuery / Javascript 日期添加 2 天(如 PHP strtotime)
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/6634833/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
JQuery / Javascript Date add 2 Days (like PHP strtotime)
提问by RIK
Looking for a simple solution for adding 2 days to a selected date in JQuery/Javascript.
寻找一个简单的解决方案,用于在 JQuery/Javascript 中为所选日期添加 2 天。
The date is returned in the format Y-m-d producing for today for example 2011-07-09. What I want to do is add 2 days to that. This would be easy in php with the strtotime function, but how is it done in javascript.
日期以 Ymd 为今天生产的格式返回,例如 2011-07-09。我想要做的是增加 2 天。这在带有 strtotime 函数的 php 中很容易,但它是如何在 javascript 中完成的。
Any ideas?
有任何想法吗?
Marvellous
奇妙
回答by Dan Herbert
回答by brubla
The same problem, I've created following function for basic functionality. It accepts and returns time similar to PHP, integer number of milliseconds since 1970-01-01.
同样的问题,我为基本功能创建了以下功能。它接受并返回类似于 PHP 的时间,自 1970-01-01 以来的整数毫秒。
var d = new Date(2011, 0, 1, 0, 0, 0, 0);
var result = strtotime('-66 second', d.getTime());
function strtotime(time, now) {
var d = new Date();
d.setTime(now);
var ParsedTime = new RegExp('([+-][0-9]+) (\w+)', 'i').exec(time);
if(!ParsedTime) return 0;
switch(ParsedTime[2]) {
case 'second':
d.setSeconds(d.getSeconds() + parseInt(ParsedTime[1], 10));
break;
case 'minute':
d.setMinutes(d.getMinutes() + parseInt(ParsedTime[1], 10));
break;
case 'hour':
d.setHours(d.getHours() + parseInt(ParsedTime[1], 10));
break;
case 'day':
d.setDate(d.getDate() + parseInt(ParsedTime[1], 10));
break;
case 'month':
d.setMonth(d.getMonth() + parseInt(ParsedTime[1], 10));
break;
case 'year':
d.setFullYear(d.getFullYear() + parseInt(ParsedTime[1], 10));
break;
}
return d.getTime();
}
回答by James Allardice
If your date is a JavaScript Date
object, then you can do something like this:
如果您的日期是一个 JavaScriptDate
对象,那么您可以执行以下操作:
var myDate = new Date();
var newDate = new Date(myDate.getTime() + 2 * 24 * 60 * 60 * 1000);
Once you have added the days to your date, you can then format it however you have done it currently.
将日期添加到您的日期后,您就可以格式化它,但您目前已完成它。
Obviously, you could make that shorter if you condense all the multiplications, but it's more obvious what's actually happening that way.
显然,如果你压缩所有的乘法,你可以缩短它,但更明显的是实际发生的事情。