PHP timestamp-первый день недели
нужно найти метка на в первую минуту на первый день на текущая неделя.
каков наилучший способ сделать это?
<?php
$ts = mktime(); // this is current timestamp
?>
6 ответов
Если вы думаете, что понедельник-первый день текущей недели...
$ts = strtotime('Last Monday', time());
Если вы думаете, что воскресенье-это первый день текущей недели...
$ts = strtotime('Last Sunday', time());
Если это понедельник, который вы ищете:
$monday = new DateTime('this monday');
echo $monday->format('Y/m/d');
Если это воскресенье:
new DateTime('this sunday'); // or 'last sunday'
для получения дополнительной информации об этих относительных форматов, посмотри здесь "PHP: относительные форматы"
прежде всего, функции даты/времени в PHP очень медленные. Поэтому я стараюсь звонить им как можно реже. Вы можете сделать это с помощью getdate()
Я использую следующий фрагмент кода:
public static function getTimesWeek($timestamp) {
$infos = getdate($timestamp);
$infos["wday"] -= 1;
if($infos["wday"] == -1) {
$infos["wday"] = 6;
}
return mktime(0, 0, 0, $infos["mon"], $infos["mday"] - $infos["wday"], $infos["year"]);
}
используйте это, чтобы получить метку времени, какой день недели вы хотите, вместо "суббота" напишите первый день недели:
strtotime('Last Saturday',mktime(0,0,0, date('m'), date('d')+1, date('y')))
например: в приведенном выше коде вы получаете метку в прошлую субботу, а суббота на этой неделе.
обратите внимание, что если будний день сейчас суббота, это вернет отметку времени сегодня.