jQuery Datepicker - Как я могу отформатировать дату как метку времени эпохи (в секундах НЕ миллисекунды)

Я использую jQuery datepicker плагин для установки поля даты, которое хранится как метка времени эпохи в дб (поле, publish_time, карты непосредственно к схеме таблицы).

Кажется, что Datepicker только поддерживает эпоху в миллисекундах, и не секунды. Ее ухудшение, что это поддерживает milli и нано секунды, но не секунды.

Есть ли какие-либо быстрые обходные решения?

// Setup datepicker
$('[name=datepicker-publish_time]').datepicker({
    dateFormat : 'mm-dd-yy',
    altField : '[name=publish_time]',
     altFormat : '@'
});

Ссылки:
jQuery Datepicker - http://jqueryui.com/demos/datepicker/#option-defaultDate
Форматы даты Поддержки jQuery - http://docs.jquery.com/UI/Datepicker/formatDate

Править: Ниже быстрое грязное решение...

$('[name=datepicker-publish_time]').datepicker({
    dateFormat : 'mm-dd-yy',
    onSelect : function(dateText, inst)
    {
        var epoch = $.datepicker.formatDate('@', $(this).datepicker('getDate')) / 1000;

        $('[name=publish_time]').val(epoch);
    }
});

6
задан John Himmelman 23 February 2010 в 20:48
поделиться

2 ответа

Используйте миллисекундное представление и parseInt, чтобы получить целочисленное значение. Затем вы можете умножить на 1000, чтобы получить секунды. Это просто требует небольшой обработки вместо того, чтобы напрямую принимать значение datepicker.

2
ответ дан 16 December 2019 в 21:38
поделиться

Я набираю это как ответ, а не как комментарий, чтобы его не пропустили: я настоятельно рекомендую не использовать необработанную временную метку от вашего клиента в качестве значения для ввода в вашу базу данных, если вы действительно не уверен , что это то, что вы хотите сделать. Ваши клиенты могут находиться в разных часовых поясах, чем ваши серверы (на самом деле, вероятность того, что они находятся, составляет примерно 96% :-), поэтому, когда они выбирают «2 апреля», это может оказаться или не закончиться как «2 апреля» в вашем база данных.

Иногда, конечно, вы хотите клиентского времени, но, по моему опыту, это не слишком распространено.

6
ответ дан 16 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

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