导航:首页 > 编程语言 > php遍历日期

php遍历日期

发布时间:2022-07-08 16:18:56

php关于两个日期间的日期进行循环

转换成时间戳
for($i = strtotime('2010-01-01'); $i < strtotime('2010-03-15
'); $i += 86400) {

// dosomething
}

❷ php获取开始与结束日期之间所有日期的方法

本文实例讲述了php获取开始与结束日期之间所有日期的方法。分享给大家供大家参考,具体如下:
/**
*
获取指定日期段内每一天的日期
*
@param
Date
$startdate
开始日期
*
@param
Date
$enddate
结束日期
*
@return
Array
*/
function
getDateFromRange($startdate,
$enddate){
$stimestamp
=
strtotime($startdate);
$etimestamp
=
strtotime($enddate);
//
计算日期段内有多少天
$days
=
($etimestamp-$stimestamp)/86400+1;
//
保存每天日期
$date
=
array();
for($i=0;
$i<$days;
$i++){
$date[]
=
date('Y-m-d',
$stimestamp+(86400*$i));
}
return
$date;
}
$startdate
=
'2016-08-29';
$enddate
=
'2016-09-29';
//
demo
$date
=
getDateFromRange($startdate,$enddate);
print_r($date);
运行结果如下:
Array
(
[0]
=>
2016-08-29
[1]
=>
2016-08-30
[2]
=>
2016-08-31
[3]
=>
2016-09-01
[4]
=>
2016-09-02
[5]
=>
2016-09-03
[6]
=>
2016-09-04
[7]
=>
2016-09-05
[8]
=>
2016-09-06
[9]
=>
2016-09-07
[10]
=>
2016-09-08
[11]
=>
2016-09-09
[12]
=>
2016-09-10
[13]
=>
2016-09-11
[14]
=>
2016-09-12
[15]
=>
2016-09-13
[16]
=>
2016-09-14
[17]
=>
2016-09-15
[18]
=>
2016-09-16
[19]
=>
2016-09-17
[20]
=>
2016-09-18
[21]
=>
2016-09-19
[22]
=>
2016-09-20
[23]
=>
2016-09-21
[24]
=>
2016-09-22
[25]
=>
2016-09-23
[26]
=>
2016-09-24
[27]
=>
2016-09-25
[28]
=>
2016-09-26
[29]
=>
2016-09-27
[30]
=>
2016-09-28
[31]
=>
2016-09-29
)
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。

❸ PHP如何获取一段时间内的日期列表

使用一个自定义函数,循环输出。

❹ php日历模块的运算逻辑求解!如何求日期对应的星期几!

现在以2010年6月14日为例说明。6月份共有30天,在这个日历表中共5行,首先需要确定当前所在的日期(当然也可以指定一个日期),比如14日,通过表格可以知道它在第3行对应星期一那列(第3周)。通常每个月第1天不是在表格开始的位置,位置并不固定,同样不固定的还有每个月的周数,有时候是4周,有时候是5周。这样,想要完成这个日历表格就需要确定一些基础的日期变量,下面具体来看需要设定的基础变量。

PHP提供了date()函数,该函数提供了丰富的日期处理功能。现在需要获得的数据有两个,第一个是当月的总天数;第二个是该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。通过date()函数可以很容易获得上面的数据。

<?php

//date()函数的基本用法

$year = date('Y'); //获得年份,例如2006

$month = date('n'); //获得月份,例如04

$day = date('j'); //获得日期,例如3

?>

通过mktime()函数和date()函数获得当月的总天数。

//获得当月的总天数

$daysInMonth = date("t",mktime(0,0,0,$month,1,$year));

同样是组合使用mktime()函数和date()函数,获得该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。

//获得每个月的第一天,例如4

$firstDay = date("w", mktime(0,0,0,$month,1,$year));

现在重新来观察下这个日历表格,我们发现,表格中的值是从1到x(当月的总天数)。我们可以形象地通过一个坐标来表示每一个位置(x,y),表格的起始位置是(0,0),结束位置是(5,4),当月第一天的起始位置是(0,3)。现在来创建一个二维数组来存储对应的日期。

(1)需要获得表格的数目。

//计算数组中的日历表格数

$tempDays = $firstDay + $daysInMonth;

(2)需要算出该月一共有几周(即表格的行数)。

//获得表格行数

$weeksInMonth = ceil($tempDays/7);

(3)在获得行数的变量之后,创建一个二维数组用来存放日期信息,代码如下:

<?php

for($j=0;$j<$weeksInMonth;$j++)

{

for($i=0;$i<7

;$i++)

{

$counter ++;

$week [$j] [$i] = $counter;

}

}

?>

(4)细心的读者可能发现,上面的代码其实是一个雏型,因为它处理出来的数据并没有过滤那些空白的表格单元。下面来继续改造下这段代码,加入过滤和构造的部分。改造后的代码如下:

<?php

//创建日期二维数组

for($j = 0; $j < $weeksInMonth; $j ++) {

for($i = 0; $i < 7; $i ++) {

$counter ++;

$week [$j] [$i] = $counter;

//日期偏移量

$week [$j] [$i] -= $firstDay;

if (($week [$j] [$i] < 1) || ($week [$j] [$i] > $daysInMonth)) {

$week [$j] [$i] = "";

}

}

}

?>

(5)在获得正确的二维数组之后,就可以通过foreach()函数将存储的日期信息遍历出来,同时插入HTML标签创建日期

不知是否正确,转自我的一个朋友

❺ PHP如何循环输出每一天

以int型存数据库那估计存的是时间戳吧,直接拿出来用date()函数转换下就行了嘛
例如date('m-d', 从数据库中取出的时间戳)就得到第一天的日期了m代表月,d代表日
然后做个循环,这个时间戳+86400,就得到明天的了,一直到小于最大值为止

❻ PHP月份循环怎么做

<?php
$StartMonth='2014-08-12';//开始日期
$EndMonth='2015-10-20';//结束日期
$ToStartMonth=strtotime($StartMonth);//转换一下
$ToEndMonth=strtotime($EndMonth);//一样转换一下
$i=false;//开始标示
while($ToStartMonth<$ToEndMonth){
$NewMonth=!$i?date('Y-m',strtotime('+0Month',$ToStartMonth)):date('Y-m',strtotime('+1Month',$ToStartMonth));
$ToStartMonth=strtotime($NewMonth);
$i=true;
echo$NewMonth,'<br/>';
}

测试效果

❼ PHP 怎么样遍历

第一、foreach()

foreach()是一个用来遍历数组中数据的最简单有效的方法。

<?php
$urls= array('aaa','bbb','ccc','ddd');
foreach ($urls as $url){
echo "This Site url is $url! <br />";
}
?>
显示结果:
This Site url is aaa

This Site url is bbb
This Site url is ccc
This Site url is ddd

第二、while() 和 list(),each()配合使用。

<?php

$urls= array('aaa','bbb','ccc','ddd');
while(list($key,$val)= each($urls)) {
echo "This Site url is $val.<br />";
}
?>

显示结果:

?

This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
第三、for()运用for遍历数组

<?php
$urls= array('aaa','bbb','ccc','ddd');
for ($i= 0;$i< count($urls); $i++){
$str= $urls[$i];
echo "This Site url is $str.<br />";
}
?>
显示结果:

This Site url is aaa

This Site url is bbb
This Site url is ccc
This Site url is ddd

这几种遍历数组的方法哪个更快捷些呢,下面做个简单的测试就明白了
=========== 下面来测试三种遍历数组的速度 ===========
一般情况下,遍历一个数组有三种方法,for、while、foreach。其中最简单方便的是foreach。下面先让我们来测试一下共同遍历一个有50000个下标的一维数组所耗的时间。

<?php
$arr= array();
for($i= 0; $i< 50000; $i++){
$arr[]= $i*rand(1000,9999);
}
function GetRunTime()
{
list($usec,$sec)=explode(" ",microtime());
return ((float)$usec+(float)$sec);
}
######################################
$time_start= GetRunTime();
for($i= 0; $i< count($arr); $i++){
$str= $arr[$i];
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of for:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
while(list($key, $val)= each($arr)){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of while:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $key, $val, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
foreach($arr as$key=> $val){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of foreach:'.round($time_used, 7).'(s)<br /><br />';
?>

测试结果:

Used time of for:0.0228429(s)
Used time of while:0.0544658(s)
Used time of foreach:0.0085628(s)

结果表明,对于遍历同样一个数组,foreach速度最快,最慢的则是while。从原理上来看,foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。原因应该是,foreach是PHP内部实现,而while是通用的循环结构。所以,在通常应用中foreach简单,而且效率高。在PHP5下,foreach还可以遍历类的属性。
希望能够喜欢。

❽ php循环当天开始的未来7天所有日期

可以结合使用strtotime和date函数实现,方法如下:

for($i=0;$i<8;$i++){
echodate('Y-m-d',strtotime('+'.$i.'day')).'<br/>';
}

共返回8个日期,包括当天日期及未来7天的日期

说明:

  1. date函数将指定的时间戳转为设定的格式,这里Y-m-d的类似2015-11-11这种格式

  2. strtotime可以将字符串转为时间戳,字符串格式支持一种+n day的写法,表示是给定时间戳之后的n天的时间戳,给定时间戳为strtotime的第二个参数,默认值为当前时间戳

❾ php 日期循环

//简单写下,用日期差,具体的日期转换自己查,转换成时间戳计算
$time=mktime(0,0,0,date('Y'),date('m'),date('d'));//当前时间转换为时间戳,或者可以自己定义一个日期
//一天是86400,那么7天是多少,=$cha
//然后$time-$cha,转换成想要的日期格式,我不记得了,用T(time)表示
for($i=0;$i<列表行数;$i++){
echoT($time-$cha*($i+1))."->".T($time-$cha*$i);

}

❿ 用php for循环输出2010-1-1到2010-3-1之间的所有日期

可以用时间戳实现,但我感觉这个方法不太好,你可以参考一下

<?php
$statr=mktime(0,0,0,1,1,2010);//取开始的时间戳
$end=mktime(0,0,0,3,1,2010);//去结束的时间戳
$j=24*60*60;//一天的秒数
//for循环
for($i=$statr;$i<=$end;$i+=$j){
$time=date('Y-m-d',$i);//格式化
echo$time.'<br>';//输出
}
?>

阅读全文

与php遍历日期相关的资料

热点内容
自己购买云主服务器推荐 浏览:419
个人所得税java 浏览:760
多余的服务器滑道还有什么用 浏览:189
pdf劈开合并 浏览:26
不能修改的pdf 浏览:750
同城公众源码 浏览:488
一个服务器2个端口怎么映射 浏览:297
java字符串ascii码 浏览:78
台湾云服务器怎么租服务器 浏览:475
旅游手机网站源码 浏览:332
android关联表 浏览:945
安卓导航无声音怎么维修 浏览:332
app怎么装视频 浏览:430
安卓系统下的软件怎么移到桌面 浏览:96
windows拷贝到linux 浏览:772
mdr软件解压和别人不一样 浏览:904
单片机串行通信有什么好处 浏览:340
游戏开发程序员书籍 浏览:860
pdf中图片修改 浏览:288
汇编编译后 浏览:491