PHP日期/时间和mktime

PHP日期/时间和mktime,php,date,time,mktime,Php,Date,Time,Mktime,希望有人能告诉我这个小调试脚本是怎么回事 <?PHP // function generates the list of times for function generateTimes($date) { $currentDate = $date; echo "RECEIVED CURRENT DATE: " . date("m/d/Y g:iA", $currentDate) . "<br /><br />"; for($i = 0; $i <

希望有人能告诉我这个小调试脚本是怎么回事

<?PHP
// function generates the list of times for
function generateTimes($date) { 

 $currentDate = $date; 
 echo "RECEIVED CURRENT DATE: " . date("m/d/Y g:iA", $currentDate) . "<br /><br />"; 

 for($i = 0; $i < 48; $i++) { 
  echo date("g:iA", $currentDate) . "<br />"; 
  $currentDate = mktime(date("g", $currentDate),date("i", $currentDate)+30,0,date("m", $currentDate),date("d", $currentDate),date("Y", $currentDate)); // 30 minutes
 } 

} 
if (isset($_POST['generate_date'])) { 
 echo "Date Stamp: " . strtotime($_POST['date']) . "<br /><br />";
 echo "The time you entered: " . date("r", strtotime($_POST['date'])) . "<br /><br />"; 
 generateTimes($_POST['date']); 

} 
echo "<form method=post action='timestampgen.php'>";
echo "<input type=text name='date' />"; 
echo "<input type=submit name='generate_date' value='Generate Time Stamp' />"; 
echo "</form><br /><br />"; 

?>

一旦你有了当前时间,你所需要做的就是在日期戳值上加上1800(30分钟乘以60秒),将其向前移动半小时;无需反复使用mktime()。

如何使用:

函数生成时间($date){
//转换为时间戳(确保验证$date值)
$currentDate=strottime($date);
对于($i=0;$i

收益率:

2010-10-01 12:00AM
2010-10-01 12:30AM
2010-10-01 1:00AM
2010-10-01 1:30AM
...
2010-10-01 11:30PM
2010-10-02 12:00AM

您可以将
DatePeriod::EXCLUDE_START_DATE
作为第四个参数传递给
DatePeriod
的构造函数,以跳过第一个条目。

您忘了提到预期输出与实际输出之间的差异。
<?  
 $currentDate = $date;  
 echo "RECEIVED CURRENT DATE: " . date("m/d/Y g:iA", strtotime($currentDate));    

 for($i = 0; $i < 48; $i++) {  
   $currentDate= date("m/d/Y g:iA",strtotime("$currentDate +30 minutes"));  
   echo $currentDate."<br/>";  
 }  
?>  
start = new DateTime('10/1/10 12:00AM');
$interval = new DateInterval('PT30M');

foreach(new DatePeriod($start, $interval, 48) as $time)
{
        echo $time->format('Y-m-d g:iA')."\n";
}
2010-10-01 12:00AM
2010-10-01 12:30AM
2010-10-01 1:00AM
2010-10-01 1:30AM
...
2010-10-01 11:30PM
2010-10-02 12:00AM