❶ 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天的日期
說明:
date函數將指定的時間戳轉為設定的格式,這里Y-m-d的類似2015-11-11這種格式
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>';//輸出
}
?>