JQuery дата-время в миллисекундах - PullRequest
3 голосов
/ 24 марта 2012

У меня есть веб-приложение, в котором я хочу отправить информацию в базу данных.

У меня есть средство выбора даты, которое позволяет пользователю выбирать дату и форматирует дату как "YYYY-MM-DD".В дополнение к этому пользователи должны также выбрать время, используя timepicker, который форматирует время как "HH:MM".Это объединяется в DateTime строку как "YYYY-MM-DD HH:MM".

. Мне нужно преобразовать это в миллисекунды для даты и времени, которые будут приняты как правильный формат в базе данных (формат локали YYYY-MM-DD HH:MM:SS.mmm).

Я попробовал множество решений, найденных здесь и в других местах, чтобы попытаться преобразовать их в миллисекунды.Всякий раз, когда я пытаюсь выполнить конкат, затем преобразовываю, я обычно получаю ошибку NaN или «недопустимую дату» и не могу просто добавить преобразованные миллисекунды.

Есть ли способ сделать это в jQuery или JavaScript?

Ответы [ 6 ]

5 голосов
/ 24 марта 2012
>> var datetime = new Date();
undefined
>> datetime.getTime();
1332613433314

Date.getTime () возвращает количество миллисекунд с 1970/01/01 года:

Хотя это должно обрабатываться на стороне сервера.

3 голосов
/ 10 ноября 2012

Я не понимаю ваш фактический вопрос, но я создал код, который устанавливает указатель даты на минимально выбранный день, поскольку сегодня код выглядит следующим образом:

$("#datefield").datepicker({
    dateFormat:"yy-mm-dd",
    minDate:new Date(new Date().getTime())
});

Возвращаемое значениеnew Date().getTime() - это миллисекунды от 1970/01/01 05:30 am (как у моей системы)

3 голосов
/ 27 марта 2012

Мне удалось выяснить это самому. Спасибо тем, кто ответил. Это не идеальное решение, но оно работает.

var d = $("#date").val();
var dateParts = new Date((Number(d.split("-")[0])), (Number(d.split("-")[1]) - 1), (Number(d.split("-")[2])));
var dateis = dateParts.getTime();

var timeEnd = $("#endtime").val();
var time1 = ((Number(timeEnd.split(':')[0]) * 60 + Number(timeEnd.split(':')[1]) * 60) * 60) * 1000;

var timeStart = $("#starttime").val();
var time2 = ((Number(timeStart.split(':')[0]) * 60 + Number(timeStart.split(':')[1]) * 60) * 60) * 1000;

var dateTimeEnd = dateis + time1;
var dateTimeStart = dateis + time2;

Что это в основном делает, так это берет дату из указателя даты, а также время начала и окончания из указателя времени. Ajax принимает 2 datetime, один для начала, один для конца. Приведенное выше решение в основном получает все значения из входных значений и преобразует их в миллисекунды. Это не лучший способ сделать что-то, но это быстрое решение.

1 голос
/ 09 сентября 2016

$ ( "# DateField") DatePicker ( "GetDate") GetTime ()..;сделает свое дело

1 голос
/ 24 марта 2012

Можете ли вы использовать объект JavaScript Date?

Вы можете использовать его следующим образом: var d = new Date(yyyy, MM, dd, hh, mm, 0, 0).getTime();

Вы инициализируете объект Date , а затем используете getTime функция, возвращающая количество миллисекунд с 1 января 1970 года.

0 голосов
/ 24 марта 2012

Я бы сделал это на стороне сервера и использовал бы функцию strtotime для преобразования в метку времени, которая даст вам количество секунд, которое, если вам действительно нужны миллисекунды для какого-либо сценария: 1 секунда =1000 миллисекунд.

Во всяком случае, вы можете использовать jquery для проверки того, что перед отправкой на серверный сценарий вы будете отправлять действительные дату и время.

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