Привет у меня есть запрос, который выбирает из базы данных, где
`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");
}
Это работает, однако, в большинстве случаев, строки, которые он считает, могут быть неправильными в выходные дни, я думаю .. сотрудники на моем сайте говорят, что он не считает субботу и воскресенье должным образом. Мой сценарий выглядит хорошо?
Похоже, вы пытаетесь получить:
Найти все в 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);
Других решений пока нет …