我使用 jquery datepicker 插件来设置一个日期字段,该字段作为纪元时间戳存储在数据库中(该字段,publish_time,直接映射到表架构)。
Datepicker 似乎只支持以毫秒为单位的纪元,而不支持秒。令人恼火的是它支持毫秒和纳秒,但不支持秒。
有什么快速的解决方法吗?
// Setup datepicker
$('[name=datepicker-publish_time]').datepicker({
dateFormat : 'mm-dd-yy',
altField : '[name=publish_time]',
altFormat : '@'
});
引用文献:
jQuery 日期选择器 - 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);
}
});
最佳答案
我将其输入为答案而不是评论,因此不会错过它:我强烈警告不要使用客户端的原始时间戳作为填充到数据库中的值,除非您真的当然这就是您想要做的。您的客户端可能与您的服务器位于不同的时区(事实上,一般来说,他们有大约 96% 的可能性:-),因此当他们选择“4 月 2 日”时,它可能会或可能不会在您的服务器中显示为“4 月 2 日”数据库。
有时您当然需要客户时间,但根据我的经验,这种情况并不常见。
关于jQuery Datepicker - 如何将日期格式化为纪元时间戳(以秒而不是毫秒为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2321399/