2015-02-25 2 views
0

Мы настраиваем Google Trusted магазин и нужно заполнить поле ORDER_EST_SHIP_DATE ID следующие поверочного с сегодняшней датой плюс 2 день:Установки даты X дней с сегодняшним днем ​​

<span id="gts-o-est-ship-date">ORDER_EST_SHIP_DATE</span> 

С выходного быть в формате YYYY-MM-DD

Например, сегодня 2015-02-25. Мне нужна строка кода на сообщение:

<span id="gts-o-est-ship-date">2015-02-27</span> 

мне также нужно отправить другую поверочного идентификатор быть текущая дата плюс 7 дней:

<span id="gts-o-est-delivery-date">ORDER_EST_DELIVERY_DATE</span> 

Так две разные даты, основанные на текущей дате: - 1, что будет 2 дня с сегодняшнего дня - 1, что будет 7 дней с сегодняшнего дня

function addDays(theDate, days) { 
    return new Date(theDate.getTime() + days*24*60*60*1000); 
} 

var newDate = addDays(new Date(), 5); 
+2

Вы используете Javascript для расчета новой даты и обновления диапазона? Какой код у вас уже есть? –

ответ

1

JavaScript дата имеет встроенный в методе:

var date = new Date(); 
 
date.setDate(date.getDate() + 2 /*days*/); 
 
var dateString = date.toISOString().slice(0, 10); 
 
document.getElementById('gts-o-est-ship-date').innerHTML = dateString;
<div id="gts-o-est-ship-date"></div>

Документация по toISOString

+0

С каких пор JavaScript имеет 'Date.prototype.format'? – Mouser

+0

У меня есть это [здесь] (http://blog.stevenlevithan.com/archives/date-time-format). На данный момент я буду использовать toLocalFormat – Sigismundus

+0

'toLocalFormat' не стандартизованный API, так что об ошибке в IE. – Mouser

1

сначала преобразовать дату в метку времени в микросекундах, используя Date.parse:

чем добавить два и семь дней к нему в микросекундах, преобразовать обратно в человека читаемая дата.

var timeStamp = Date.parse("2015-02-25"); 
 

 
//add two days, in microseconds = 60*60*24*2*1000 
 
var TwoDays = 172800000; 
 
var SevenDays = 604800000; 
 

 
function convertToDate(timeStamp) 
 
{ 
 
    var date = new Date(timeStamp); 
 
    return date.toJSON().split("T")[0]; 
 
} 
 

 
document.write(convertToDate(timeStamp+TwoDays)); //show two days in future 
 
document.write("<br />"); 
 
document.write(convertToDate(timeStamp+SevenDays)); //show seven days in future

Это возвращает дату в формате UTC. Поэтому вам может потребоваться преобразовать это в локаль пользователей. Важно, чтобы вы выбрали базовое время для всего своего времени (например, UTC) и преобразовали его в локализацию пользователей в качестве последнего шага.

+0

Довольно длинный код для такой маленькой задачи. – Sigismundus

+0

@Sigismundus. Работает как шарм. – Mouser

Смежные вопросы