php 如何获取时间数组?高手请进!
比方说从现在起,往前两年的时间,以这样格式array('2012-9-18','2012-9-17',.........,'2010-0-01');谁会?20分,解决了还...
比方说从现在起,往前两年的时间,以这样格式array('2012-9-18','2012-9-17',.........,'2010-0-01');
谁会?20分,解决了还给30分。 展开
谁会?20分,解决了还给30分。 展开
3个回答
展开全部
<?php
$start_day = 1;//表示从该年的第一天开始计数
$end_day = 365+366;//这两年一共有多少天,楼主需要的话自己写个计算方法吧
$end_day = 80;//为了显示,以80天为例
$date_array = array();
for($day=$start_day; $day<=$end_day; $day++){
$temp_date = date("Y-m-d",mktime(0,0,0,1,$day,2010));//这个是将从2010-1-1开始的80天,依次存入数组
array_push($date_array,$temp_date);
}
print_r($date_array);//输出
?>
这个算法的关键在于mktime(0,0,0,1,$day,2010) 这一方法,他是可以“自动校正越界的输入”,就是把2010-1-32 变成 2010-2-1,牛逼啊。
楼主可以自己查下,网址附在下面。
date函数网址
http://www.w3school.com.cn/php/func_date_mktime.asp
附图:
参考资料: php入门级选手,权当练习
展开全部
function datemonth($start_date)
{
$days = [];
$i = 0;
list($oyear, $omonth, $oday) = explode('-', $start_date);
while (1) {
//生成日期
$date = date('Y-m-d', strtotime("-" . ($i++) . " days"));
$days[] = $date;
//判断是否是两年前
list($nyear, $nmonth, $nday) = explode('-', $date);
if(($oyear - $nyear) == 2 && $omonth == $nmonth && $nday == $oday) {
break;
}
}
return $days;
}
print_r(datemonth(date("Y-m-d")));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-10-23 · 知道合伙人软件行家
关注
展开全部
试编写代码如下:
<?php
function dates_range1($date1, $year)
{
$count = $year * 365; //设置每年天数为365天,没有对闰年进一步考虑
$dates_range[]=$date1;
$date1=strtotime($date1);
for($i=1;$i<$count;$i++)
{
$date1=mktime(0, 0, 0, date("m", $date1), date("d", $date1)-1, date("Y", $date1));
$dates_range[]=date('Y-m-d', $date1);
}
return $dates_range;
}
echo '<pre>';
print_r(dates_range1('2012-9-18', 2));
echo '</pre>';
?>
<?php
function dates_range1($date1, $year)
{
$count = $year * 365; //设置每年天数为365天,没有对闰年进一步考虑
$dates_range[]=$date1;
$date1=strtotime($date1);
for($i=1;$i<$count;$i++)
{
$date1=mktime(0, 0, 0, date("m", $date1), date("d", $date1)-1, date("Y", $date1));
$dates_range[]=date('Y-m-d', $date1);
}
return $dates_range;
}
echo '<pre>';
print_r(dates_range1('2012-9-18', 2));
echo '</pre>';
?>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询