Я использую 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);
}
});
Используйте миллисекундное представление и parseInt, чтобы получить целочисленное значение. Затем вы можете умножить на 1000, чтобы получить секунды. Это просто требует небольшой обработки вместо того, чтобы напрямую принимать значение datepicker.
Я набираю это как ответ, а не как комментарий, чтобы его не пропустили: я настоятельно рекомендую не использовать необработанную временную метку от вашего клиента в качестве значения для ввода в вашу базу данных, если вы действительно не уверен , что это то, что вы хотите сделать. Ваши клиенты могут находиться в разных часовых поясах, чем ваши серверы (на самом деле, вероятность того, что они находятся, составляет примерно 96% :-), поэтому, когда они выбирают «2 апреля», это может оказаться или не закончиться как «2 апреля» в вашем база данных.
Иногда, конечно, вы хотите клиентского времени, но, по моему опыту, это не слишком распространено.