如何在任何给定日期制作一个测试是否在星期四15:00到星期五16:00之间的PHP。
我将用作检查magento 1.8上是否有特定的装运方法
答案 0 :(得分:0)
如果您不介意将这类事情硬编码,您可以尝试以下方法:
$is_valid =
(date('D') === 'Thu' && date('H') >= 15) ||
(date('D') === 'Fri' && date('H') < 16);
这是一个非常粗略的例子,但可能会给你一些如何实施的想法。如果您现在不想要它,可以使用unix时间戳作为第二个参数来播种日期函数,但它会很快变得难看。
或者,您可以通过使用内置字符串构造函数(如果您要以可由用户配置的窗口)以较低的性能成本获得更多灵活性
$string_to_check = 'now';
$string_start = 'thursday 15:00';
$string_end = 'friday 16:00';
$subject = new \DateTime($string_to_check);
$end = new \DateTimeImmutable($string_end);
//need to calculate end first for the relative modification
$start = $end->modify(sprintf('previous %s', $string_start));
$is_valid = ($start < $subject && $subject < $end);
如果窗口在同一天开始和结束,我可以看到它不会起作用的限制,虽然这很容易修复 - 如果需要,你可以这样做。