jQuery Datepicker - 如何将日期格式化为纪元时间戳(以秒为单位,而不是毫秒)

时间:2010-02-23 20:17:42

标签: jquery datepicker epoch

我正在使用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);
    }
});

2 个答案:

答案 0 :(得分:6)

我输入这个作为答案,而不是评论,所以不会错过:我强烈反对使用客户端的原始时间戳作为值进入数据库,除非你真的确定这就是你想要做的。您的客户可能处于与您的服务器不同的时区(事实上,他们通常有大约96%的可能性:-)所以当他们选择“4月2日”时,它可能会或可能不会以“4月2日”结束数据库中。

有时候你想要客户时间,但根据我的经验,这并不常见。

答案 1 :(得分:2)

使用毫秒表示和parseInt获取整数值。然后你可以乘以1000得到秒。这只需要一点处理,而不是直接获取datepicker的值。