JQuery UI DatePicker для эпохи - PullRequest
       17

JQuery UI DatePicker для эпохи

4 голосов
/ 20 августа 2011

Каков наилучший способ получить дату средства выбора даты в следующем формате гггг-дд-мм (гг-дд-мм в настройках даты) и преобразовать ее в время эпохи с помощью Javascript?

Я пыталсясделать это так:

var aDate = $("#date").val().split('-');
var epoch = new Date(aDate[0] + "," + aDate[1] + "," + aDate[2]).getTime() / 1000;

И console.log(epoch) возвращается как NaN.

Но если я объявлю эпоху как new Date(2011,10,30).getTime() / 1000;, то проблем не будет.Я предполагаю, что проблема в том, что я передаю строку, но я понятия не имею, как ее решить, поскольку я новичок в Javascript.

Редактировать: я знаю о настройках altDate и altFormatв DatePicker.Но я хочу знать, как это сделать, не используя эти настройки.Потому что мне придется делать то, что я описываю выше для даты + времени позже.

Ответы [ 3 ]

6 голосов
/ 20 августа 2011

Попробуйте изменить конструктор даты на это:

var epoch = new Date(aDate[0], aDate[1] - 1, aDate[2]).getTime() / 1000;

Мы удалили конкатенацию строк, поэтому она должна правильно прочитать дату. Месяц представлен как aDate[1] - 1, потому что числа месяцев в JavaScript основаны на нуле (январь = 0, декабрь = 11), поэтому 1 необходимо вычесть из номера месяца.

Рабочий пример можно найти здесь: http://jsfiddle.net/Qpg24/67/

4 голосов
/ 20 августа 2011

Параметры jQuery UI datepicker altDate и altFormat сделают это автоматически.

Посмотрите пример "Заполнить альтернативное поле" в примерах .

0 голосов
/ 28 апреля 2013

jQuery UI datepicker имеет метод 'getDate', который возвращает дату в виде строки:

Sun Apr 28 2013 13:30:00 GMT+1000 (EST)

Вы можете использовать метод getTime объекта Date, чтобы преобразовать эту строку в миллисекунды с начала эпохи. Используя ваш пример кода, это будет выглядеть так:

var epoch = new Date( $("#date").datepicker( "getDate" ) ).getTime();

Это также работает для jQuery datetimepicker (http://trentrichardson.com/examples/timepicker/)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...