jQuery Datepicker - Как мне отформатировать дату как метку времени эпохи (в секундах, а не в миллисекундах) - PullRequest
6 голосов
/ 23 февраля 2010

Я использую плагин datequicker jquery, чтобы установить поле даты, которое хранится как метка времени эпохи в БД (поле publish_time отображается непосредственно в схему таблицы).

Похоже, Datepickerподдерживает только эпоху в миллисекундах, а не в секундах.Отягчает тот факт, что он поддерживает миллионы и нано секунды, но не секунды.

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

// 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);
    }
});

Ответы [ 2 ]

6 голосов
/ 23 февраля 2010

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

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

2 голосов
/ 23 февраля 2010

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

...