Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перевод даты в unix и обратно
 
 автор: Читатель   (19.11.2010 в 15:26)   письмо автору
 
 

Есть задача. С помощью 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:37)   письмо автору
 
   для: Читатель   (19.11.2010 в 15:26)
 

Пробовала использовать функцию new Date(result).toLocaleString() - не получалось.
Добавила миллисекунды - получилось:


          var new_str = res + 2592000000; 
          alert(new Date(new_str).toLocaleString());


Это вообще правильный путь?

  Ответить  
 
 автор: Читатель   (19.11.2010 в 15:47)   письмо автору
 
   для: Читатель   (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 в 17:03)   письмо автору
 
   для: Читатель   (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:28)   письмо автору
 
   для: АЯ   (19.11.2010 в 17:03)
 

Спасибо!

>//странный формат для вывода??
А почему странный? Вполне привычный dd.mm.yyyy

  Ответить  
 
 автор: АЯ   (19.11.2010 в 17:36)   письмо автору
 
   для: Читатель   (19.11.2010 в 17:28)
 

Я не про тот формат, который у Вас в элементе с идентификатором id, написал "странный".
Тот - нормальный, если ДД.ММ.ГГГГ (где именно ЧЕТЫРЕ цифры в годе).

Я про тот формат, который выводится алертом.

  Ответить  
 
 автор: Читатель   (19.11.2010 в 17:56)   письмо автору
 
   для: АЯ   (19.11.2010 в 17:36)
 

В алерте именно такой формат и выводится, где именно 4 цифры в годе. Проверьте :)

  Ответить  
 
 автор: АЯ   (19.11.2010 в 18:14)   письмо автору
 
   для: Читатель   (19.11.2010 в 17:56)
 

>"В алерте именно такой формат и выводится, где именно 4 цифры в годе. Проверьте"

Такой формат выводится ТОЛЬКО и ИСКЛЮЧИТЕЛЬНО в браузере OPERA.
Вы проверьте в других браузерах - MSIE, FF, Chrome...

  Ответить  
 
 автор: Читатель   (19.11.2010 в 19:33)   письмо автору
 
   для: АЯ   (19.11.2010 в 18:14)
 

А, может быть, не проверяла. Мне нужен только и исключительно браузер Опера.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования