PHP日期时间 - 从年,周和星期几制作
问题描述:
我将年,星期和星期几存储为整数。平日从星期一开始,以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));
和其他一些变化,但没有给我预期的结果。
任何想法?
答
该解决方案:
$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);
似乎给了预期的结果
希望它可以帮助别人
答
在我看来,如果你需要使用\DateTime::setISODate()
。然而,你将需要1添加到平日周一是1
$date = (new \DateTime())->setISODate($year, $week, $weekday + 1);
var_dump($date);
首先,你为什么不以日期时间列存储的日期? – Ruben 2014-10-30 11:10:17
没有任何东西存储在MySQL中,我只是将MySQL函数作为我所做的变量(实际上是方法参数)的例子。请参阅下面的解决方案 – 2014-10-30 11:12:46