|
|
|
| Есть задача. С помощью js прибавить к дате 30 дней.
Как перевести дату в unix я нашла
function time_second(id)
{
var Months =
{
'01' : 'January',
'02' : 'February',
'03' : 'March',
'04' : 'April',
'05' : 'May',
'06' : 'June',
'07' : 'July',
'08' : 'August',
'09' : 'September',
'10' : 'October',
'11' : 'November',
'12' : 'December'
};
var str = ge(id).value;
var arr = str.split('.');
str = arr[0] + ' ' + Months[arr[1]] + ' ' + arr[2] + ' 00:00';
var res = Date.parse(str);
alert(res);
}
|
А теперь мне нужно прибавить 30 дней (60 с * 60 м * 24 ч * 30 д = 2592000 секунд)
var result = res + 2592000;
|
в result получим нужную дату в unix, а как ее перевести в dd.mm.yyyy? | |
|
|
|
|
|
|
|
для: Читатель
(19.11.2010 в 15:26)
| | Пробовала использовать функцию new Date(result).toLocaleString() - не получалось.
Добавила миллисекунды - получилось:
var new_str = res + 2592000000;
alert(new Date(new_str).toLocaleString());
|
Это вообще правильный путь? | |
|
|
|
|
|
|
|
для: Читатель
(19.11.2010 в 15:37)
| |
function add_period(id,days)
{
var Months =
{
'01' : 'January',
'02' : 'February',
'03' : 'March',
'04' : 'April',
'05' : 'May',
'06' : 'June',
'07' : 'July',
'08' : 'August',
'09' : 'September',
'10' : 'October',
'11' : 'November',
'12' : 'December'
};
var msec = 1000*60*60*24*days;
var str = ge(id).value;
var arr = str.split('.');
str = arr[0] + ' ' + Months[arr[1]] + ' ' + arr[2] + ' 00:00';
var res = Date.parse(str);
res += msec;
var result = new Date(res).toLocaleString().substring(0,10);
alert(result);
}
|
Окончательный вариант, если вдруг кому-то надо.
А те, кто разбирается лучше, поправьте, пожалуйста, если я не права.
P.S.
ge(id).value = document.getElementById(id).value | |
|
|
|
|
|
|
|
для: Читатель
(19.11.2010 в 15:47)
| | Поправляю:
function add_period (id, days)
{
var msec = 1000 * 60 * 60 * 24 * days;
var str = ge (id).value;
var arr = str.split ('.');
var CurrDateVal = new Date (arr [2], parseInt (arr [1], 10) - 1, parseInt (arr [0], 10)).valueOf ();
var result = new Date (CurrDateVal + msec).toLocaleString ().substring (0, 10); //странный формат для вывода??
alert (result);
}
|
| |
|
|
|
|
|
|
|
для: АЯ
(19.11.2010 в 17:03)
| | Спасибо!
>//странный формат для вывода??
А почему странный? Вполне привычный dd.mm.yyyy | |
|
|
|
|
|
|
|
для: Читатель
(19.11.2010 в 17:28)
| | Я не про тот формат, который у Вас в элементе с идентификатором id, написал "странный".
Тот - нормальный, если ДД.ММ.ГГГГ (где именно ЧЕТЫРЕ цифры в годе).
Я про тот формат, который выводится алертом. | |
|
|
|
|
|
|
|
для: АЯ
(19.11.2010 в 17:36)
| | В алерте именно такой формат и выводится, где именно 4 цифры в годе. Проверьте :) | |
|
|
|
|
|
|
|
для: Читатель
(19.11.2010 в 17:56)
| | >"В алерте именно такой формат и выводится, где именно 4 цифры в годе. Проверьте"
Такой формат выводится ТОЛЬКО и ИСКЛЮЧИТЕЛЬНО в браузере OPERA.
Вы проверьте в других браузерах - MSIE, FF, Chrome... | |
|
|
|
|
|
|
|
для: АЯ
(19.11.2010 в 18:14)
| | А, может быть, не проверяла. Мне нужен только и исключительно браузер Опера. | |
|
|
|