我正在制作一个函数,我试图以不同的日期格式存储数据。我想根据有多少天将数据存储在几个月或几周内。所以基本上,我的意思是说,如果我从两个月内获取数据,我希望它每周将数据存储在一个数组中,例如:
'1 2013' => 'some data',
'2 2013' => 'some data',
'3 2012' => 'some data',
如果我要获取超过三个月的数据,我想每月存储数据,所以:
'Jan 2013' => 'some data',
'Feb 2013' => 'some data',
'Mar 2012' => 'some data',
想考虑到我可能想要添加更多场景,所以我做了一个条件来根据天数确定数据的存储方式。它适用于几个月,但由于某种原因它不适用于几周。我不断在循环中为日期添加一周以获取下一个日期。当我在调用 strtotime() 后检查 $time 变量的类型时,它说它是布尔类型。不明白为什么!
这是我的代码的相关部分(为清楚起见,编辑了位):
$times = array();
$length = 90; //Fetched data for 90 days.
$periods= round($length/7); //Want to divide it up into weeks.
$per = 'week';
$format= 'W Y';
for($n = 0; $n < $periods; $n++){
$time = date($format, $start);
//Here's apparently where it goes wrong:
$time = date($format, strtotime($time . ' + ' . $n . $per));
$times[$time] = array();
}
e:想添加,即使我这样做:
$time = date($format, strtotime($time . ' + 1 week'));
它不会存储正确的值。