我有一个PHP数组列表中的日期列表。所有日期都在星期二或星期四登陆,并采用以下格式:2012年3月8日。我正在尝试列出日期并检查下一个日期的最大值(所有这些都必须在将来,没有通过)并验证每个日期的星期几。一旦被发现,我想把它们放在两个单独的列表中,一个用于周二登陆的4个,另外四个用于星期四(后来被放入单独的DIV)。任何人都知道如何完成这项工作?
为了分离200多行代码,这是我的例子:
今天是2012年11月26日星期一。
这是我的日期数组:
2012年11月27日
2012年11月29日
2012年12月4日
2012年12月6日
2012年12月11日
2012年12月13日
2012年12月18日
2012年12月20日
2012年12月25日
2012年12月27日
2013年1月1日
2013年1月3日
2013年1月8日
2013年1月10日
我想把它变成2个列表:
星期二列表
2012年11月27日
2012年12月4日
2012年12月11日
2012年12月18日
周四列表
2012年11月29日
2012年12月6日
2012年12月13日
2012年12月20日
提前致谢!
答案 0 :(得分:0)
怎么样:
date('w', strtotime($my_date));
这应该可以为您提供所需的所有信息。
答案 1 :(得分:0)
这是一个步骤过程(创建函数,获取键,循环使用键位置对日期进行排序)
数组(使用发布的样本数组) -
$date_array = array('November 27, 2012','November 29, 2012','December 4, 2012','December 6, 2012','December 11, 2012','December 13, 2012','December 18, 2012','December 20, 2012','December 25, 2012','December 27, 2012','January 1, 2013','January 3, 2013','January 8, 2013','January 10, 2013');
首先创建一个函数来查找最接近的$array
值
function closest($array, $number) {
ksort($array);
foreach ($array as $a) {
if (strtotime($a) >= strtotime($number)) return $a;
}
return end($array);
};
使用我们的新功能查找今天的日期或下一个最近的日期,然后获取value
的密钥 -
$today = date("F j, Y");
$value = closest($date_array, $today);
$key = array_search($value, $date_array);
创建Tuesday
&用于保存数据的Thursday
数组 -
$tues_array = array();
$thurs_array = array();
循环显示每个date
,从当前(或最接近)日期开始8次$key+8
并将其添加到Tuesday
(2)& Thursday
(4)
for($i=$key;$i<($key+8);$i++){
$dayofweek = date('w', strtotime($date_array[$i]));
if ($dayofweek == 2){
$tues_array[] = $date_array[$i];}
if ($dayofweek == 4){
$thurs_array[] = $date_array[$i];}
}