我正在使用jquery datepicker插件设置一个日期字段,该字段存储为db中的纪元时间戳(字段,publish_time,直接映射到表架构)。
似乎Datepicker仅以毫秒为单位支持纪元,而不支持秒。它加剧了它支持milli& amp;纳秒,但不是秒。
有没有快速的解决方法?
// 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);
}
});
答案 0 :(得分:6)
我输入这个作为答案,而不是评论,所以不会错过:我强烈反对使用客户端的原始时间戳作为值进入数据库,除非你真的确定这就是你想要做的。您的客户可能处于与您的服务器不同的时区(事实上,他们通常有大约96%的可能性:-)所以当他们选择“4月2日”时,它可能会或可能不会以“4月2日”结束数据库中。
有时候你想要客户时间,但根据我的经验,这并不常见。
答案 1 :(得分:2)
使用毫秒表示和parseInt获取整数值。然后你可以乘以1000得到秒。这只需要一点处理,而不是直接获取datepicker的值。