Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Введена сегодняшняя дата? (https://javascript.ru/forum/css-html/52209-vvedena-segodnyashnyaya-data.html)

Hold 08.12.2014 16:31

Введена сегодняшняя дата?
 
Здравствуйте.
Помогите решить простейшую задачу: введена дата и время, нужно узнать сегодняшняя это дата или нет.

Дата и время вводятся в одно поле в формате "dd.mm.yyyy hh:mm".

При попытках решения столкнулся со следующими нюансами:
1) Date.Parse() воспринимает строку в американском формате, т.е. "13.05.2014" - Invalid Date, т.к. у них сперва пишут месяц, потом число

2) а что и с чем, собственно, сравнивать? как получить сегодняшнюю дату? Date.now() возвращает дату и время в миллисекундах.. Как отбросить время? Чтобы полученную дату сравнить с той, что будет получена от пользователя?

Заранее благодарю!

рони 08.12.2014 16:46

Hold,
достать дату достать месяц достать год сравнить
http://javascript.ru/Date

Hold 08.12.2014 17:18

Цитата:

Сообщение от рони (Сообщение 345513)
Hold,
достать дату достать месяц достать год сравнить
http://javascript.ru/Date

Хорошо. А в парсере как-то можно задать формат? Чтоб он дату "12.05.2014" не воспринимал как 12 мая 2014, а как 5 декабря 2014?

devote 08.12.2014 17:34

var dateStr = "13.05.2014";
var ms = Date.parse(dateStr.replace(/^(\d+)\.(\d+)\./, '$2-$1-'));

alert(new Date(ms));

рони 08.12.2014 18:06

Hold,
var dateStr = "8.12.2014 11:30",
    ms = Date.parse(dateStr.replace(/^(\d+)\.(\d+)\./, "$2-$1-"));
alert((new Date(ms)).setHours(0, 0, 0, 0) == (new Date).setHours(0, 0, 0, 0));

Hold 08.12.2014 20:27

Спасибо за ответы, господа!
P.s. рони, твое решение прям скопипастил! :dance:
про setHours не знал(

Aetae 08.12.2014 20:50

Нафиг на Date.parse() полагаться.
var date = "8.12.2014 11:30".match(/\d+/g);
date = new Date(date[2], date[1]-1, date[0], date[3], date[4]);
alert(date);

P.S. При сравнении не стоит забывать о часовом поясе.


Часовой пояс GMT +3, время: 13:23.