mysql — PHP strtotime на прошлой неделе на каждый день

Привет у меня есть запрос, который выбирает из базы данных, где

`timestamp` >= '".$monS."' AND `timestamp` < '".$sunE."'

А вот как то $monS а также $sunE определено:

$startTime = "00:00:00";
$endTime = "23:59:59";

$today = date('l', strtotime("now"));

if($today == "Monday"){
$monS = strtotime("yesterday -7 days $startTime");
$sunE = strtotime("yesterday -1 days $endTime");
}
if($today == "Tuesday"){
$monS = strtotime("yesterday -8 days $startTime");
$sunE = strtotime("yesterday -2 days $endTime");
}
if($today == "Wednesday"){
$monS = strtotime("yesterday -9 days $startTime");
$sunE = strtotime("yesterday -3 days $endTime");
}
if($today == "Thursday"){
$monS = strtotime("yesterday -10 days $startTime");
$sunE = strtotime("yesterday -4 days $endTime");
}
if($today == "Friday"){
$monS = strtotime("yesterday -11 days $startTime");
$sunE = strtotime("yesterday -5 days $endTime");
}
if($today == "Saturday"){
$monS = strtotime("yesterday -12 days $startTime");
$sunE = strtotime("yesterday -6 days $endTime");
}
if($today == "Sunday"){
$monS = strtotime("yesterday -13 days $startTime");
$sunE = strtotime("yesterday -7 days $endTime");
}

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

0

Решение

Похоже, вы пытаетесь получить:

Найти все в MySQL за неделю, предшествующую этому прошлому воскресенью.

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

$dow = date('N'); // current DOW – 0 = Sunday, 1 = Monday, 2 = Tues...
$now = time();
$sunE = $now - (24 * 3600 * $dow); // 24 * 3600 = one day in seconds
$monS = $sunE - (24 * 3600 * 7);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]