Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2014, 16:31
Новичок на форуме
Отправить личное сообщение для Hold Посмотреть профиль Найти все сообщения от Hold
 
Регистрация: 21.01.2011
Сообщений: 4

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

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

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

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

Заранее благодарю!
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2014, 16:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Hold,
достать дату достать месяц достать год сравнить
http://javascript.ru/Date
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2014, 17:18
Новичок на форуме
Отправить личное сообщение для Hold Посмотреть профиль Найти все сообщения от Hold
 
Регистрация: 21.01.2011
Сообщений: 4

Сообщение от рони Посмотреть сообщение
Hold,
достать дату достать месяц достать год сравнить
http://javascript.ru/Date
Хорошо. А в парсере как-то можно задать формат? Чтоб он дату "12.05.2014" не воспринимал как 12 мая 2014, а как 5 декабря 2014?
Ответить с цитированием
  #4 (permalink)  
Старый 08.12.2014, 17:34
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

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

alert(new Date(ms));
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 08.12.2014, 18:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

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));
Ответить с цитированием
  #6 (permalink)  
Старый 08.12.2014, 20:27
Новичок на форуме
Отправить личное сообщение для Hold Посмотреть профиль Найти все сообщения от Hold
 
Регистрация: 21.01.2011
Сообщений: 4

Спасибо за ответы, господа!
P.s. рони, твое решение прям скопипастил!
про setHours не знал(
Ответить с цитированием
  #7 (permalink)  
Старый 08.12.2014, 20:50
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Нафиг на 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. При сравнении не стоит забывать о часовом поясе.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Различная дата на локальном сервере и хостинге TheDude Серверные языки и технологии 5 19.10.2014 11:11
ISO дата. Часовой пояс Nihisil Общие вопросы Javascript 1 27.10.2011 06:16
MySQl дата между двух дат mycoding Серверные языки и технологии 8 14.02.2011 15:23
Дата и место мастер-класса Илья Кантор Сайт Javascript.ru 21 19.10.2009 15:54
datepicker текущая дата Aliq jQuery 2 08.10.2008 21:21