Получите метку времени полуночи в предыдущую среду - PullRequest
6 голосов
/ 22 июля 2009

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

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

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

Ответы [ 3 ]

5 голосов
/ 22 июля 2009

А как насчет 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 голосов
/ 22 июля 2009

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

$t=strtotime("last wednesday");

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

Это выдаст

15 Jul 2009 00:00:00

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

0 голосов
/ 22 июля 2009

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

В настоящее время я не занимаюсь PHP, но мне повезло с библиотеками Pear: вот документы для класса календаря

...