簡體   English   中英

PHP獲取昨天的日期,除非周末

[英]PHP get yesterdays date unless weekend

我需要獲取昨天的日期以顯示收市日期。 這僅適用於星期一至星期五,因為周末不開放。 使用這種格式我該怎么做?

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

這是一種實現方法:

$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');

我只是得到今天的日期,減去一天,然后檢查是否是星期天。 如果是這樣,請減去一天。 然后我在星期六做同樣的事情。 最終,您將在最后一個工作日結束。

請記住,這與工作日有所不同,因為星期五可能是假日,市場可能關閉。

您可以使用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 2016Tuesday, June 14th 2016它將返回2016-06-13

有關日期函數的更多信息: http : //php.net/manual/en/function.date.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM