JQuery / Javascript Date добавить 2 дня (как PHP strtotime) - PullRequest
1 голос
/ 09 июля 2011

Ищите простое решение для добавления 2 дней к выбранной дате в JQuery / Javascript.

Дата возвращается в формате Ymd, создаваемом на сегодня, например 2011-07-09.Что я хочу сделать, это добавить 2 дня к этому.Это было бы легко в php с функцией strtotime, но как это сделать в javascript.

Любые идеи?

Чудесный

Ответы [ 3 ]

13 голосов
/ 09 июля 2011

Используйте метод JavaScript Date объекта setDate().

var myDate = new Date('2011-07-09');
myDate.setDate(myDate.getDate() + 2);
3 голосов
/ 13 октября 2011

Та же проблема, я создал следующую функцию для базовой функциональности.Он принимает и возвращает время, аналогичное 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();
}
3 голосов
/ 09 июля 2011

Если ваша дата является объектом JavaScript Date, вы можете сделать что-то вроде этого:

var myDate = new Date();
var newDate = new Date(myDate.getTime() + 2 * 24 * 60 * 60 * 1000);

После того, как вы добавили дни к своей дате, вы можете отформатировать их так, как вы это сделали в настоящее время.

Очевидно, что вы могли бы сделать это короче, если бы уплотнили все умножения, но более очевидно, что на самом деле происходит таким образом.

...