Javascript.RU

Date.parse

Синтаксис

Date.parse(dateVal)

Аргументы

dateVal
Строка, содержащая дату в стандартном строковом формате.

Описание, примеры

Метод parse получает строку с датой (напр. "Jan 03, 2000") и возвращает целое число, представляющее собой количество миллисекунд, истекших с полуночи 1 января 1970 года GMT+0 до даты, указанной в параметре dateVal.

Это статический метод, который можно вызывать без создания объекта даты, поэтому для доступа к нему используется форма Date.parse, а не объект .parse.

var d = new Date();
d.setTime(Date.parse("21 May 1958 10:12"));
document.write(d.toLocaleString());

// Выведет на экран следующий результат:
Wednesday, May 21, 1958 10:12:00

В случае, если метод parse не смог разобрать переданную ему в качестве параметра строку, он возвращает значение NaN.

Правила разбора строки

Поддерживается стандарт IETF standard (RFC 1123, раздел 5.2.14 и т.д.)

Существуют следующие правила перевода даты из текстовой строки:

  • Для краткого формата даты допускается использование разделителей "/" или "-", но порядок элементов должен быть строго "месяц/день/год", например "7/20/96".
  • Для полного формата даты порядок указания элементов может быть произвольным. Если используется два знака для обозначения года, то число должно быть меньше 70 для указания 21-го века. Например "July 10 1995".
  • Любой текст в круглых скобках рассматривается как комментарии. Комментарии могут быть вложенными, например: "July 10 1995 (this (1234) is a comment)".
  • Запятые и пробелы рассматриваются как разделители, могут повторяться.
  • Месяца и дни недели должны иметь два и больше знаков. Если в двузначном написании элементы становятся идентичными, то используется последнее значение, например "Ju" это Июль, а не Июнь.
  • Если в полном формате даты указан неверный день недели, то он игнорируется.
    Яваскрипт обрабатывает все стандартные временные зоны, включая UTC и GMT.
  • Значения для часов, минут и секунд могут быть пропущены, например "10:", "10:11", и "10:11:12".
  • Если время указано в 24-часовом формате, то указание полудня считается ошибкой, например "23:15 PM" - ошибка.
  • Строка, содержащая неправильную дату - ошибочна. Например, строка содержащая два года или два месяца.
IPOdate.setTime(Date.parse("Aug 9, 1995")) ;

// Возвращает 807937200000 в зоне GMT-0300, 
// и другие значения в других зонах, так как зона
// не указана в аргументе
Date.parse("Aug 9, 1995");

// Возвращает 807926400000 в любой зоне.
Date.parse("Wed, 09 Aug 1995 00:00:00 GMT");

Автор: ares4322 (не зарегистрирован), дата: 26 марта, 2010 - 13:07
#permalink

В firefox 3.5.8 для Linux "-" в коротком формате записи даты обрабатывается как ошибочный


Автор: Александр Девелопер (не зарегистрирован), дата: 14 декабря, 2010 - 13:39
#permalink

в файерфоксе вообще Date.parse() работает немного не так.
Для FF формат даты должен быть Year-mm-dd, например: 2010-12-14


Автор: Гость (не зарегистрирован), дата: 25 апреля, 2011 - 10:45
#permalink

Подскажите, мне нужно строку со временем в формате 2011-04-25 12:00:00 (из PHP кода) использовать в JS функции, для проверки, больше ли текущее время чем заданная дата.
Проще говоря мне нужен аналог функции на ПХП сделать в яваскрипт, переменная perehod будет брать время из базы данных.

$perehod=2011-04-25 12:00:00;
if (strtotime(date("Y-m-d H:i:s")) < strtotime($perehod)){
echo "Текущее время меньше даты";
exit;
}else{
echo "Текущее время больше даты";
}

Автор: SoRx, дата: 17 мая, 2011 - 13:46
#permalink
var perehod = '2011-04-25 12:00:00';
if ( (new Date(perehod.replace(/(\d+)-(\d+)-(\d+)/, '$2/$3/$1'))) < (new Date()) ) {
...
}

Автор: Белотур (не зарегистрирован), дата: 17 апреля, 2014 - 16:40
#permalink

что за анархия? :-))
strtotime(date("Y-m-d H:i:s"))

есть же int time ( void )
if (time() < strtotime($perehod)){
...


Автор: Гость (не зарегистрирован), дата: 20 мая, 2011 - 01:44
#permalink

На самом деле сравнение, можно проводить через строки - без лишних преобразований. Формат который используется в FF - очень удобен для строчного сравнения.


Автор: Гость (не зарегистрирован), дата: 22 июня, 2011 - 16:02
#permalink

Не могу понять как получить текущую дату в формате
01.06.2011 10:01:11


Автор: Гость (не зарегистрирован), дата: 22 июня, 2011 - 17:19
#permalink

Про получение текущей даты...

решил проблему чудовищным способом

CurDate= new Date();
CurDate1=""+addZero(CurDate.getDate())+"."+addZero(CurDate.getMonth())+"."+addZero(CurDate.getFullYear()) + " "+addZero(CurDate.getHours())+ " "+addZero(CurDate.getMinutes())+ ":"+addZero(CurDate.getSeconds())

может можно как-то по другому?


Автор: Гость (не зарегистрирован), дата: 29 сентября, 2011 - 01:05
#permalink

new Date(new Date().getTime())


Автор: melky, дата: 30 сентября, 2011 - 08:49
#permalink
new Date;

но он не об этом


Автор: medic_911 (не зарегистрирован), дата: 9 февраля, 2012 - 10:30
#permalink

Date.parse() выдает неправильный результат для GMT+ 7. Сервер находится GMT+ 4. Все даты на сутки назад. В чем может быть проблема?


Автор: medic_911 (не зарегистрирован), дата: 9 февраля, 2012 - 10:58
#permalink

Докапался:
если парсить дату Thu Feb 09 2012 00:00:00 GMT+0700 то вычитается разница в часовых поясах, т.е. на выходе получим Thu Feb 08 2012 21:00:00 GMT+0400!!!!!


Автор: Асланали (не зарегистрирован), дата: 11 августа, 2012 - 15:32
#permalink

Здравствуйте.
Как перевести дату 'FRI, 10 AUG 2012 08:29:29 +0000' примерно к такому '‎9 ‎августа ‎2012 ‎г., ‏‎12:21:09'?


Автор: Гость (не зарегистрирован), дата: 22 ноября, 2012 - 19:36
#permalink

Эта штука прекрасно парсит неверные даты, типа Date.parse("2012/13/22"). Получаем 22 января 2013. Хотел применить для валидации Sad


Автор: Sigizmund2012, дата: 18 октября, 2014 - 15:49
#permalink

Не во всех браузерах, Chrome выдаёт NaN.


Автор: Гость (не зарегистрирован), дата: 1 июня, 2017 - 15:06
#permalink

А доки читать не пробовали? Тринадцатый месяц парсер интерпретировал как первый месяц следующего года, что в общем-то логичнее, чем ругаться на неверную дату )


Автор: Гость (не зарегистрирован), дата: 14 января, 2013 - 22:46
#permalink

obj_hours=document.getElementById("date");

name_month=new Array ("Января","Февраля","Марта", "Апреля","Мая", "Июня","Июля","Августа","Сентября", "Октября","Ноября","Декабря");
name_day=new Array ("Воскресенье","Понедельник", "Вторник","Среда","Четверг", "Пятница","Суббота");

function wr_hours()
{
time=new Date();

time_sec=time.getSeconds();
time_min=time.getMinutes();
time_hours=time.getHours();
time_wr=((time_hours<10)?"0":"")+time_hours;
time_wr+=":";
time_wr+=((time_min<10)?"0":"")+time_min;
time_wr+=":";
time_wr+=((time_sec<10)?"0":"")+time_sec;

time_wr=""+name_day[time.getDay()]+" "+time.getDate()+" "+name_month[time.getMonth()]+" "+time.getFullYear()+" "+time_wr;

obj_hours.innerHTML=time_wr;
}

wr_hours();
setInterval("wr_hours();",1000);

что тут неправильно?


Автор: Гость (не зарегистрирован), дата: 18 марта, 2014 - 15:43
#permalink

Кодировка.


Автор: mankey, дата: 24 декабря, 2014 - 18:54
#permalink

>> Для краткого формата даты допускается использование разделителей "/" или "-"

Firefox (v34) НЕ понимает следующее выражение

new Date('12-31-2014') // Invalid Date

Т.е. существует проблема либо с поддержкой либо с переводом RFC.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
2 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum