Подтвердить что ты не робот

Javascript Date Plus 2 недели (14 дней)

Я использую это, чтобы получить дату:

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 <.

4b9b3361

Ответ 1

12096e5 - это магическое число, которое составляет 14 дней в миллисекундах.

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

jsFiddle.

Ответ 2

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

Ответ 3

сделали для вас фальшивку 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));
    });

Ответ 4

Попробуйте следующее:

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

Ответ 5

Хорошо, 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

12096e5 не волшебный номер. Всего 14 дней в миллисекунды в экспоненциальной нотации.

Это число является результатом 1000 [мс] * 60 [с] * 60 [м] * 24 [h] * 14 [d] сохранено в экспоненциальной нотации.

Вы можете проверить его, если вы наберете Номер ('12096e5'). Вы получите 1209600000 [мс], что составляет ровно 2 недели в миллисекундах. Экспоненциальная нотация делает ее неясной.

Вы можете написать любое другое число в экспоненциальной нотации, чтобы сделать жизнь ваших коллег-разработчиков более интересной.

Объект Date имеет конструктор, который принимает миллисекунды в качестве аргумента, аргумент которого может быть в экспоненциальной нотации.

var d = новая дата (миллисекунды);

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

Оба одинаковы.

Ответ 7

добавить следующий прототип метода

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

и чем его очень просто использовать,

currentTime.addDays(5);

Ответ 8

Если вы форматируете дату javascript в определенном формате, я думаю, вы можете посмотреть на это script http://blog.stevenlevithan.com/archives/date-time-format, Все, что вам нужно сделать после включения script, это new Date(+new Date + 1000* 60 * 60 * 24 * 14).format('dd/mm/yyyy'), и вы получите вывод "27/10/2011"

script довольно маленький, чуть выше 1 Кбайт. Это ссылка на рабочий скрипт http://jsfiddle.net/naryad/GufvT/