除非周末,PHP才能获得昨天的约会

时间:2016-06-14 23:06:28

标签: php date

我需要在昨天的日期显示市场截止日期。这仅适用于周一至周五,因为市场周末不开放。使用这种格式我该怎么做?

<?php
$yesterday = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1,date("Y")));
echo $yesterday;
?>

2 个答案:

答案 0 :(得分:2)

这是一种方法:

$date= new \DateTime();
$oneDay = new \DateInterval('P1D');
$date->sub($oneDay);
if ('Sunday' === $date->format('l')) {
    $date->sub($oneDay);
}
if ('Saturday' === $date->format('l')) {
    $date->sub($oneDay);
}
echo $date->format('Y-m-d');

我今天的日期,减去一天,然后查看是否是星期天。如果是这样,减去一天。然后我为星期六做同样的事情。最终你会在最后一个工作日结束。

请记住,这与营业日不同,因为周五可能是假期,市场可能会关闭。

答案 1 :(得分:0)

您可以使用date('w')查看当前工作日的当天。 请注意,星期日是0,星期六是6。

有了这些信息,你可以这样做:

$yesterday = strtotime(date('w') == 0 || date('w') == 6 ? 'last friday' : 'yesterday');
echo date('Y-m-d', $yesterday);

基本上,如果它是一个周末,你要求上周五,否则,你昨天会问PHP。

如果你不喜欢一行:

$w = date('w');
if($w == 0 || $w == 6)
    $yesterday = strtotime('last friday');
else
    $yesterday = strtotime('yesterday');

$yesterday = date('Y-m-d', $yesterday);

在我们今天的案例Tuesday, June 14th 2016中,它将返回2016-06-13

有关日期功能的更多信息:http://php.net/manual/en/function.date.php