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

Joh*_*man 6 jquery datepicker epoch

我正在使用jquery datepicker插件来设置一个日期字段,该字段存储为db中的纪元时间戳(字段,publish_time,直接映射到表模式).

看来Datepicker只支持以毫秒为单位的纪元,而不是秒.它加剧了它支持毫秒和毫秒,但不是秒.

有没有快速的解决方法?

// Setup datepicker
$('[name=datepicker-publish_time]').datepicker({
    dateFormat : 'mm-dd-yy',
    altField : '[name=publish_time]',
     altFormat : '@'
});
Run Code Online (Sandbox Code Playgroud)

参考:
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);
    }
});
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 6

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

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


kgi*_*kis 2

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