Увеличить время.

Нужно сохранять значение поля типа DateTime увеличенное на час, два, четыре и т.д. от текущего, согласно неким настройкам. Как это сделать в скрипте?

Нравится

5 комментариев

Попробовал сделать вот так:

var DateWithTime = new Date().getTime(); //здесь же я получаю текущую дату в миллисекундах?
var DT = new Date(DateWithTime);
DateWithTime = DateWithTime + 3600000; //а здесь, по идее, прибавляю один час?
DateWithTime = DT.getVarDate(DateWithTime);
DatasetAccount.ValAsDateTime('SchedulerTime') = DateWithTime;

на выходе получаю туже дату и тоже время, что и в начале...

var DateWithTime = new Date();
DateWithTime.setHours(DateWithTime.getHours() + 1)

СПСБ.

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

Да, нужно было вначале прибавить интервал, а затем создавать новый объект даты по измененному.
Могу порекомендовать Вам изменять поле даты/времени с помощью метода setHours, который устанавливает необходимые часы, минуты, секунды и миллисекунды, например следующим образом (здесь передаются только часы и минуты)

DateWithTime.setHours(DateWithTime.getHours(), DateWithTime.getMinutes() + DelayDuration);

, где значение DelayDuration можно брать из системных настроек, например таким образом

var DelayDuration = GetSystemParameterValueEx('DelayDuration', false);

СПСБ...

Показать все комментарии