Javascript日期加2周(14天)

时间:2011-10-13 09:19:37

标签: javascript date

我用它来获取日期:

var currentTime = new Date()
var month = currentTime.getMonth() + 1
var day = currentTime.getDate()
var year = currentTime.getFullYear()
alert(month + "/" + day + "/" + year);

如何添加2周?因此,而不是显示10/13/2011,以显示10/27/2011等

这是小提琴:http://jsfiddle.net/25wNa/

我希望一个输入有+14天而另一个+21

注意:我希望格式为> 10/13/2011<。

9 个答案:

答案 0 :(得分:65)

12096e5magic number,这是14天(毫秒)。

var fortnightAway = new Date(Date.now() + 12096e5);

jsFiddle

答案 1 :(得分:28)

var currentTime = new Date();
currentTime.setDate(currentTime.getDate()+14);

答案 2 :(得分:11)

为你制作了一个f归档http://jsfiddle.net/pramodpv/wfwuZ/

    Date.prototype.AddDays = function(noOfDays) {
       this.setTime(this.getTime() + (noOfDays * (1000 * 60 * 60 * 24)));
       return this;
    }

    Date.prototype.toString = function() {
       return this.getMonth() + "/" + this.getDate() + "/" +  this.getFullYear().toString().slice(2); 
    }

    $(function() {
        var currentTime = new Date();
        alert(currentTime.AddDays(14));
    });

答案 3 :(得分:9)

试试这个:

currentTime.setDate(currentTime.getDate()+14);

答案 4 :(得分:7)

12096e5 是一种神奇的号码。 milliseconds in exponential notation 只需14天。

此数字是 1000 [ms] * 60 [s] * 60 [m] * 24 [h] * 14 [d]以指数表示法保存的结果。

如果您输入号码('12096e5'),可以查看它。您将获得 1209600000 [ms] ,这正好是2周(以毫秒为单位)。指数表示法使其模糊不清。

您可以用指数表示法编写任何其他数字,以使您的开发人员的生活更加有趣

Date object有一个构造函数,它接受毫秒作为参数,该参数可以是指数表示法。

  

var d = new Date(毫秒);

var afterTwoWeeks = new Date(+new Date + 12096e5);
var afterTwoWeeks = new Date(+new Date + 1209600000);

两者都是一样的。

答案 5 :(得分:1)

嗯,JS时间是毫秒级的,所以加上两个星期就可以计算两周的时间,并加上这个值。

var twoWeeks = 1000 * 60 * 60 * 24 * 14;
var twoWeeksTime = new Date(new Date().getTime() + twoWeeks);
var formattedDate = twoWeeksTime.getDate() + '/' + (twoWeeksTime.getMonth()+1) + '/' + twoWeeksTime.getYear();

当然,如果您需要添加月份,这种方法就会失败,因为它们的长度可变,但添加数天和数周都可以。

或者,您使用DateJS library,它具有完全相同的功能(加上更多)。

使用DateJS,您的代码可能如下所示:

var twoWeeksTime = Date.today().add({ days: 14 });
var formattedDate = twoWeeks.TimetoString('dd/MM/yy');

希望有所帮助。

答案 6 :(得分:0)

从当前日期加上或减去 2 周

下面的代码示例以YYYY-MM-DD格式输出

如果在字符串中添加条件将 0 与小于 10 的月和日连接起来。

var twoWeeks = 1000 * 60 * 60 * 24 * 14;
var twoWeeksTime = new Date(new Date().getTime() + twoWeeks); /* Add or Subtract here*/

var formattedDate = (twoWeeksTime.getFullYear()) + '-' +
                    ((twoWeeksTime.getMonth()+1) < 10 ? "0"+(twoWeeksTime.getMonth()+1): (twoWeeksTime.getMonth()+1)) + '-' +
                    (twoWeeksTime.getDate() < 10 ? "0"+(twoWeeksTime.getDate()): (twoWeeksTime.getDate()));

document.body.innerHTML = formattedDate;

答案 7 :(得分:-1)

添加以下原型方法

Date.prototype.addDays = function(days) {
     this.setDate(this.getDate()+days);
}

而且它的使用非常简单,

currentTime.addDays(5);

答案 8 :(得分:-1)

如果您要格式化特定格式的javascript日期,那么我认为您可以查看此脚本http://blog.stevenlevithan.com/archives/date-time-format。包含脚本之后您需要做的就是new Date(+new Date + 1000* 60 * 60 * 24 * 14).format('dd/mm/yyyy'),您将获得输出"27/10/2011"

脚本很小,只有1KB以上缩小。这是工作小提琴http://jsfiddle.net/naryad/GufvT/

的链接