JavaScript дата объекты Великобритания даты - PullRequest
9 голосов
/ 25 июня 2010

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

 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, но это не так.Я думаю, что это связано с тем фактом, что я использую даты в Великобритании: дд / мм / гггг.Что мне нужно изменить, чтобы это заработало?

Ответы [ 6 ]

12 голосов
/ 24 августа 2012

Вот как я это сделал:

 var lastRunDateString ='05/04/2012'; \\5th april 2012
 var lastRunDate = new Date(lastRunDateString.split('/')[2], lastRunDateString.split('/')[1] - 1, lastRunDateString.split('/')[0]);

Обратите внимание, что индексирование месяца от 0-11.

12 голосов
/ 25 июня 2010

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

new Date(year, month, day);

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

9 голосов
/ 23 июня 2015
var dateString ='23/06/2015';
var splitDate = dateString.split('/');
var month = splitDate[1] - 1; //Javascript months are 0-11

var date = new Date(splitDate[2], month, splitDate[0]);
5 голосов
/ 25 июня 2010
  • Разделите дату на части дня, месяца и года, используя dateSet.split('/')
  • Передайте эти части в правильном порядке конструктору Date.
0 голосов
/ 25 июня 2010

При попытке создать объект даты:

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

Пример:

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

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

0 голосов
/ 25 июня 2010

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

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

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

$.datepicker.formatDate('dd/mm/yyyy');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...