2011-06-21 5 views
0

私は2つのエポックを持っています。私は、2つのエポック内で有効なすべての日付を把握したいと思います。2エポック以内に各日付の配列を取得する方法

例えば、私が946684800(Sat、2000年1月1日00:00:00 GMT)と947203200(Fri、2000年1月7日00:00:00 GMT)のエポックを持っていれば、 01/01/2000、02/01/2000、03/01/2000、04/01/2000など

答えて

1

PHPの時間値は、ちょうどUnixのタイムスタンプです。 PHP 5のDateTimeオブジェクトをオフに行く:

$start = strtotime('01 Jan 2000'); 
$end = strtotime('07 Jan 2000'); 

for ($d = $start; $d <= $end; $d += 86400) { // increment by 86,400 seconds, aka 1 day 
    echo date('d/m/Y', $d); 
} 

が日時/ DateIntervalオブジェクトを使用して、それについて行くのより良い方法だが、これは単なる基本を示すことです。あなたがPHP 5.3以降をお持ちの場合は

1

エポックが秒単位であるとすれば、1日に見つかった秒数を最初のエポック:

946684800 + 86400 = 946771200 -> Sun, 02 Jan 2000 00:00:00 GMT 

そして、このように上に行く、私はより良い説明:

947203200 - 946684800 = 518400/86400 = 6 (exactly 6 days) 

ので(擬似コード): - 月1970分の1からの秒

for(int i = 946684800; i<946684800 ;i+=86400){ 
    day = getDate(i); 
} 
1
$epoch1 = '946684800'; 
$epoch2 = '947203200'; 
$i = 0; 
while($time < $epoch2) { 
    $time = mktime(0, 0, 0, date("m", $epoch1) , date("d", $epoch1)+$i, date("Y",$epoch1)); 
    echo date('d/m/Y', $time)."<br>"; 
    $i++; 
} 
2

、あなたがこれを行うことができます:

$date1 = new DateTime; 
$date1->setTimestamp(946684800); 

$date2 = new DateTime; 
$date2->setTimestamp(947203200); 

$interval = new DateInterval('P1D'); 

while ($date1 <= $date2) 
{ 
    $dates_in_between[] = $date1->getTimestamp(); 
    $date1->add($interval); 
} 

を別の方法として、あなたはこれを使用することができます

// 1 day = 60 seconds * 60 minutes * 24 hours = 86400 
for ($date = 946684800; $date <= 947203200; $date += 86400) 
    $dates_in_beteween[] = $date; 

$dates_in_betweenは、 "日付" のリストが含まれます間に

1

右の質問を理解し、あなたがしたい場合は2つのエポック(2000-01-01および2000年1月7日)内で毎日..

がそうのように行うことができます。

<?php 
$epoch1 = 946684800; 
$epoch2 = 947203200; 
$difference = $epoch1 - $epoch2; 
.. 
//count days 
$amountOfDays = round(($epoch2-$epoch1)/86400); 

//looping all days 
for($i=1; $i<=$amountOfDays; $i++) { 
echo date('d/m/Y', $epoch1+($i*86400); 
} 
?> 
0
$start = strtotime('2011-06-01'); 
$end = strtotime('2011-06-15'); 
$date = $start; 
$anArray = array(); 

while ($date <= $end) { 
    $date = strtotime("+1 DAY", $date); 
    $anArray[] = $date; 
}   
関連する問題