Дата JavaScript возражает британским датам

У меня есть следующий код

 datePicker.change(function(){
        dateSet = datePicker.val();
        dateMinimum = dateChange();
        dateSetD = new Date(dateSet);
        dateMinimumD = new Date(dateMinimum);
        if(dateSetD<dateMinimumD){
            datePicker.val(dateMinimum);
            alert('You can not amend down due dates');
        }       
    })

dateSet = "01/07/2010" dateMinimum = "23/7/2010"

Оба - британский формат. Когда объекты даты сравнены, dateSetD должен быть меньше, чем dateMinimumD, но это не. Я думаю, что это относится к фактам, я использую британские даты dd/mm/yyyy. Что я должен был бы изменить для получения этой работы?

9
задан Linda 25 June 2010 в 10:30
поделиться

4 ответа

Конструктор JavaScript Date не анализирует строки в этой форме (в формате Великобритании или США). См. Подробности в спецификации , но вы можете строить даты по частям:

new Date(year, month, day);

MomentJS может быть полезен для гибкой работы с датами. (Этот ответ ранее был связан с этой библиотекой , но долгое время не поддерживался.)

12
ответ дан 4 December 2019 в 06:26
поделиться
  • Разделите дату на части день, месяц, год с помощью dateSet.split('/')
  • Передайте эти части в правильном порядке в конструктор Date.
5
ответ дан 4 December 2019 в 06:26
поделиться

Да, проблема с используемым форматом даты. Если вы не устанавливаете формат даты, по умолчанию используется дата 'мм / дд / гг . Таким образом, вы должны установить предпочтительный формат даты при его создании следующим образом при создании средства выбора даты:

$(".selector" ).datepicker({ dateFormat: 'dd/mm/yyyy' });

или вы можете установить его позже как:

$.datepicker.formatDate('dd/mm/yyyy');
0
ответ дан 4 December 2019 в 06:26
поделиться

Когда вы пытаетесь создать объект даты:

new Date(year, month, day, hours, minutes, seconds, milliseconds)

Пример:

dateSetD = new Date(dateSet.year, dateSet.month, dateSet.day);

Примечание: месяц объекта JavaScript Date начинается с 00, поэтому вам необходимо соответствующим образом скорректировать набор дат.

0
ответ дан 4 December 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: