2014-10-30 95 views
4

我將年,星期和星期幾存儲爲整數。平日從星期一開始,以0爲基礎。這些變量相當於MySQL中的YEAR(date),WEEK(date)和WEEKDAY(date,1)函數。例如,對於今日(星期四2014年10月30日),這將是:PHP日期時間 - 從年,周和星期幾製作

$year = 2014; 
$week = 44; 
$weekday = 3; // Thursday 

使用這些變量如何設置DateTime對象的日期?

我試着使用:

DateTime::createFromFormat("Y-z", $year . "-" . ((($week - 1) * 7) + $weekday)); 

和其他一些變化,但沒有給我預期的結果。

任何想法?

+0

首先,你爲什麼不以日期時間列存儲的日期? – Ruben 2014-10-30 11:10:17

+0

沒有任何東西存儲在MySQL中,我只是將MySQL函數作爲我所做的變量(實際上是方法參數)的例子。請參閱下面的解決方案 – 2014-10-30 11:12:46

回答

2

該解決方案:

$year = 2014; 
$week = 44; 
$weekday = 3; // Thursday 

$day_in_question = new DateTime(); 
$day_in_question->setTime(0, 0, 0); 
$day_in_question->setISODate($year, $week_number, $weekday + 1); 

似乎給了預期的結果

希望它可以幫助別人

相關問題