Метод 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");
В firefox 3.5.8 для Linux "-" в коротком формате записи даты обрабатывается как ошибочный
в файерфоксе вообще Date.parse() работает немного не так.
Для FF формат даты должен быть Year-mm-dd, например: 2010-12-14
Подскажите, мне нужно строку со временем в формате 2011-04-25 12:00:00 (из PHP кода) использовать в JS функции, для проверки, больше ли текущее время чем заданная дата.
Проще говоря мне нужен аналог функции на ПХП сделать в яваскрипт, переменная perehod будет брать время из базы данных.
что за анархия? :-))
strtotime(date("Y-m-d H:i:s"))
есть же int time ( void )
if (time() < strtotime($perehod)){
...
На самом деле сравнение, можно проводить через строки - без лишних преобразований. Формат который используется в FF - очень удобен для строчного сравнения.
Не могу понять как получить текущую дату в формате
01.06.2011 10:01:11
Про получение текущей даты...
решил проблему чудовищным способом
может можно как-то по другому?
new Date(new Date().getTime())
но он не об этом
Date.parse() выдает неправильный результат для GMT+ 7. Сервер находится GMT+ 4. Все даты на сутки назад. В чем может быть проблема?
Докапался:
если парсить дату Thu Feb 09 2012 00:00:00 GMT+0700 то вычитается разница в часовых поясах, т.е. на выходе получим Thu Feb 08 2012 21:00:00 GMT+0400!!!!!
Здравствуйте.
Как перевести дату 'FRI, 10 AUG 2012 08:29:29 +0000' примерно к такому '9 августа 2012 г., 12:21:09'?
Эта штука прекрасно парсит неверные даты, типа Date.parse("2012/13/22"). Получаем 22 января 2013. Хотел применить для валидации
Не во всех браузерах, Chrome выдаёт NaN.
А доки читать не пробовали? Тринадцатый месяц парсер интерпретировал как первый месяц следующего года, что в общем-то логичнее, чем ругаться на неверную дату )
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);
что тут неправильно?
Кодировка.
>> Для краткого формата даты допускается использование разделителей "/" или "-"
Firefox (v34) НЕ понимает следующее выражение
new Date('12-31-2014') // Invalid Date
Т.е. существует проблема либо с поддержкой либо с переводом RFC.
Добрый день!
Подскажите пожалуйста к преобразовать дату: 'вс, 15 июл. 2018 12:40:57 +0300'
в любое другое стандартное значение.
Roksa tuszyn
Roksa buk
Roksa lódz
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.