我需要得到昨天的日期才能顯示市場收盤日期。這僅適用於週一至週五,因爲市場週末不開放。使用這種格式我該怎麼做?PHP得到昨天的日期除非週末
<?php
$yesterday = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1,date("Y")));
echo $yesterday;
?>
我需要得到昨天的日期才能顯示市場收盤日期。這僅適用於週一至週五,因爲市場週末不開放。使用這種格式我該怎麼做?PHP得到昨天的日期除非週末
<?php
$yesterday = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1,date("Y")));
echo $yesterday;
?>
您可以查看本週的當天是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
謝謝,我喜歡單行選項。非常豐富。 –
@WillLong沒問題。你介意把這個標記爲答案嗎? :) –
是的標記。再次感謝你。在和我的客戶交往之後,如果週一是星期一,我也需要看星期五,所以我調整了這樣的線...... $ yesterday = strtotime(date('w')== 0 | | strtotime(date('w')== 1 || date('w')== 6?'last friday':'yesterday'); echo date('Ym-d',$ 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');
我只是得到今天的日期,減去一天,檢查,看它是否是一個星期天。如果是這樣,減去一天。然後我在星期六做同樣的事情。最終你會在最後一個工作日結束。
請記住,這是不同的工作日,因爲那個星期五可能是假期,市場可能會被關閉。
'日期( 「W」)'會給你一週的數字一天(0〜6)。從那裏你可以寫出一個有條件的工作日。 – jszobody