2009-07-21 3 views
6

Как я могу найти временную отметку unix в полночь прошлой среды? Моим единственным подходом было бы получить дневной индекс и дневной номер сегодня и вычесть разницу, но я могу подумать о нескольких сценариях, где это может потерпеть неудачу, например, в начале месяца до того, как произошла среда.Получите временную метку unix в полночь в предыдущую среду

Я думаю, более кратко, как я могу найти дату предыдущей среды?

Любая помощь будет оценена по достоинству.

+0

Вы ищете полуночи по местному времени, или в полночь по Гринвичу? –

ответ

5

А что насчет strtotime?

$timestamp = strtotime("last Wednesday"); 

var_dump($timestamp); 
var_dump(date('Y-m-d H:i:s', $timestamp)); // to verify 

И вы получите этот результат:

int 1247608800 
string '2009-07-15 00:00:00' (length=19) 

, которая на самом деле последняя среда, полночь.

4

Это проще, чем вы могли бы подумать ... наблюдать за удивительной огневой мощи этого полностью работоспособной боевой станции , э-э, я имею в виду strtotime

$t=strtotime("last wednesday"); 

echo strftime("%d %b %Y %H:%M:%S", $t); 

Это выведет

15 Jul 2009 00:00:00 

Который, на момент написания, последняя среда :)

0

Как «правильно» вы хотите быть? Если вы хотите быть очень верным, вам нужно будет учитывать летнее время, часовые пояса, високосные годы и т. Д. Это означает использование библиотеки, а не просто вычитание дневных индексов.

Я не в настоящее время делает PHP, но я использовал, чтобы иметь удачи с библиотеками Груша: здесь являются docs для класса Календарь

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