2016-01-25 196 views
0

我需要獲取本週的週三和週六22:59的時間戳,然後將時間戳轉換爲人類可讀的日期。獲取特定工作日的日期

我已經試過如下:

date_default_timezone_set('America/New_York'); 

$wednesdayLimit = strtotime('wednesday this week'); 
$saturdayLimit = strtotime('saturday this week'); 

$wednesdayLimit->setTime(22,59,0); 
$saturdayLimit->setTime(22,59,0); 

echo date("Y-m-d H:i:d", $wednesdayLimit); 
echo date("Y-m-d H:i:d", $saturdayLimit); 

,但我得到了以下錯誤:

Uncaught Error: Call to a member function setTime() on integer

+1

'的strtotime()'確實返回一個整數,你要使用它像一個對象。 (#)(#)(#) –

+1

'$ wednesdayLimit = strtotime('本週三星期三22:59:00');' - 但我不確定'strtotime()'會一貫處理本週「」的事情,你應該一定要測試它。 – Crontab

+0

@Crontab我一直在使用strtotime()很多,它總是工作正常。他也設定時區也很好。 –

回答

1

一個內膽:

print date('Y-m-d H:i:s', strtotime('wednesday this week 22:59:00'));¸ 

產量: 2016-01-27 22:59:00

0

如何

$wednesday = strtotime('wednesday this week'); 
$wednesdayStart = $wednesday - ($wednesday % 60*60*24); 
$wednesdayEnd = $wednesdayStart + (60 * 60 * 24) - 1; 
0

您可以使用DateTime並做類似這樣的事情。

$date = new \DateTime(); 
$date->setISODate((int)$date->format('o'), (int)$date->format('W'), 3); 
$date->setTime(22, 59, 0); 
echo $date->format('D d-m-Y H:i:s'); 

Demo

或者,如果你喜歡一個襯墊。

$date = (new \DateTime())->modify('wednesday this week')->setTime(22, 59, 0); 

Demo