2014-05-12 26 views
-1

我有這行代碼如何恢復一週的週一開始

$date=new \DateTime('now'); 

自該日起,我需要在本週初恢復星期一的日期。

例如,當$date=14_05_2014 19:12:20(2014年5月14日),我需要一個具有相應星期一值的變量:$n=12_05_2014 08:00:00(2014年5月12日)。

+0

請讓你的未來的問題更具有可讀性(標點符號,新的生產線,等等) –

回答

1

它給出了PHP強大的日期/時間功能是相當簡單:

$now = new \DateTime('now'); 

# "1" means "Monday", you could improve this by detecting localized settings 
$daysToMove = (int)($now->format('N')) - 1; // 

# How many days to subtract? 
if ($daysToMove){ 
    $now->sub(new \DateInterval('P' . $daysToMove . 'D')); 
} 

echo "Start of the week: " . $now->format('Y-m-d'); 

簡單的解釋:

  1. 你計算一週的當前天。該值可以在範圍1..7中。
  2. 因爲,星期一是1,從計算出的數字中減去1
  3. 如果結果數大於0(意思是「今天不是星期一」),則創建DateInterval並從當前日期中減去它。

你可以找到更多關於DateTimeDateInterval類:here。尋找Examples節...

PHP date()date

PHP DateTime(OOP變體):DateTime

+0

我會測試他,你能解釋我更多這個代碼,謝謝 – razzek

+0

當然,我已經添加了解釋... –

+0

非常感謝你 – razzek