2013-09-10 3 views
0

Я пытаюсь определить, как форматируется эта дата. Я использую jQuery datepicker внутри Tablesorter внутри Wordpress. Даты идут как так:Определите формат этой даты (отметка времени)

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 Дата публикации на Timestamp поэтому Datepicker в моем TableSorter можно сортировать по этому времени, но StrToTime возвращает немного времени выключения по сравнению с DatePicker.

Мои Wordpress Время форматы:

UTC+0 
September 10, 2013 
7:22 pm 
Monday 

Признает ли кто-нибудь метку времени выше/знаю, как я могу получить, что точный штамп?

EDIT

Когда я разделил на 1000 это почти получилось, но все же незначительные различия. Когда я использую date(), хотя я получаю тот же день - так откуда возникают небольшие различия и как я могу их компенсировать или обойти их?

+0

"слегка выключен" ?? Примерно через 30 лет! – adeneo

ответ

1

JavaScript возвращает отметки времени в миллисекундах. PHP возвращает отметки времени в секундах.

Разделите/несколько на 1000, чтобы получить соответствующую метку времени между PHP/JavaScript.

+0

Пока вы правы, отметки времени все еще выключены. '13799988' и' 13799808', используя последнюю дату в моем примере выше. –

+0

Обратите внимание, что JavaScript является технологией клиентской стороны и поэтому получает дату/время от системы клиентов, которая может не соответствовать вашему серверу. Это может объяснить разницу. –

1

Функция strtotime() просто убирает лишние «0» в конце, которые включает DatePicker.

Эти цифры - это отметка времени UNIX или секунды с момента EPOCH. Разделите значение на 1000, чтобы получить правильную метку времени.

Вы можете конвертировать, что в читаемый формат, который является SQL дружественным, как это:

$datePickerValue = 1379998800000/1000; 
$date = date("y-m-d H:m:s", $datePickerValue); 
echo $date; 
1

Вы можете использовать timeFormat опцию в DatePicker и установить его на использование секунд вместо миллисекунд:

$(function() { 
$("#datepicker").datepicker({ 
    //altField: "#alternate", 
    timeFormat: 'hh:mm:ss', 
}); 
}); 

Но вы не должны доверять часовому поясу клиента. Нет единого надежного способа, и его никогда не будет. Всегда используйте серверное решение для обработки времени/даты. Используйте встроенные функции PHP и класс DateTime.

Смежные вопросы