我正在尝试设置一个php,它将每年的9月1日设置为日期。我正在使用CRON声明每次日期是9月7日,然后php将实际更新数据库,以查找日期为9月7日(9月9日)前一周的行。
现在我的代码在10月28日进行了测试,当我回复$selectedDate
时,它会输出2012-10-28
,这很好。但是当我将日期更改为9月1日时,它会输出`2011-12-01
,这显然是不正确的。它应该输出`2013-09-01,因为下一个9月的日期将是2013年。然后在2013年9月的Ist日期过后,那一年应该改为2014年等等。
如何才能输出正确的日期?
以下是代码:
$createDate = mktime(0,0,0,09,01,date("Y"));
$selectedDate = date('Y-m-d', ($createDate));
答案 0 :(得分:3)
那是因为09
被解释为八进制9 ,这是无效的。
当您通过9
而不是09
时,它会按预期工作:
$createDate = mktime(0,0,0,9,1,date("Y"));
// ^ ^ No preceeding 0s.
$selectedDate = date('Y-m-d', ($createDate));
var_dump($createDate, $selectedDate);