나는 5 분마다 시작하는 cronjob을 가지고 있습니다. 하루 중 특정 시간에만 (예 : 아침과 저녁) 일부 작업을 수행해야합니다.날짜 시간이 시간 프레임 내에 있는지 확인하는 가장 효과적인 방법
현재 DateTime이 cronjob이 시작될 수있는 5 분 시간 프레임 사이에 있는지를 확인하는 가장 효과적이고 우아한 방법은 무엇입니까?
$date = new DateTime();
$hour = (int)$date->format('H');
$min = (int)$date->format('i');
if($hour == 7 && ($min >= 40 || $min < 45)) {
// Do something in the morning
}
if($hour == 21 && ($min >= 00 && $min < 05)) {
// Do something in the evening
}
을하지만이 코드의 많은 것 같다 : 순간
내가하고 있어요. 거기에 뭔가가 같은
$date->isInTimeRane($begin, $end);
네이티브 PHP 코드로? $begin
및 $end
뿐만 아니라 형식의 날짜 시간의이다
낮 시간을 "매년, 매월 및 매일"설정할 수 있습니까? 왜냐하면 나는 매일 이것을 실행하기를 원하기 때문입니다. 매번 부작용을 시작하고 끝내야 만한다면, 코드가 부 풀릴 것입니다 (따라서, 현재 버전도 그대로 유지할 수 있습니다). – shredding
다음과 같이 할 수 있습니다 :'$ begin = new DateTime(); $ begin-> setTime (7, 40);'- 현재 날짜의 7시 40 분을 나타내는 DateTime 인스턴스를 제공합니다. 그러나 이것은 가장 효율적인 해결책이 아닙니다. – Niko