我正在尝试确定如何格式化此日期。我在Wordpress中的Tablesorter中使用jQuery datepicker。日期如此:
Actual Date - October 13 2013
Datpicker - 1381640400000
Str To Time - 1381622400
Actual Date - Setpember 11 2013
Datpicker - 1378875600000
Str To Time - 1378857600
Actual Date - Setpember 24 2013
Datpicker - 1379998800000
Str To Time - 1379980800
我正在将Wordpress发布日期转换为时间戳,因此我的Tablesorter中的Datepicker可以对该时间戳进行排序,但与datepicker相比,StrToTime会返回稍微偏离的时间。
我的Wordpress时间格式是:
UTC+0
September 10, 2013
7:22 pm
Monday
有人认出上面的时间戳/知道我怎么能得到那个确切的标记吗?
编辑
当我除以1000时,它几乎成功了,但仍有轻微的差异。当我使用date()虽然我确实得到了同一天 - 那么细微差别来自何处以及如何弥补它们或绕过它们?
答案 0 :(得分:1)
JavaScript以毫秒为单位返回时间戳。 PHP以秒为单位返回时间戳。
将1,000除以/倍,以获得PHP / JavaScript之间的适当时间戳。
答案 1 :(得分:1)
strtotime()函数只是在DatePicker包含的末尾省略了额外的'0'。
这些数字是自EPOCH以来的UNIX时间戳或秒。将值除以1000以获得正确的时间戳。
您可以将其转换为SQL友好的可读格式,如下所示:
$datePickerValue = 1379998800000/1000;
$date = date("y-m-d H:m:s", $datePickerValue);
echo $date;
答案 2 :(得分:1)
您可以在DatePicker中使用timeFormat
选项,并将其设置为使用秒而不是毫秒:
$(function() {
$( "#datepicker" ).datepicker({
//altField: "#alternate",
timeFormat: 'hh:mm:ss',
});
});
但你不应该相信客户的时区。没有一种可靠的方法,永远不会有。始终使用服务器端解决方案来处理时间/日期。利用PHP的内置函数和DateTime类。