我想填充一个选择列表,使其从00:00开始直到23:55每增加5分钟。我也需要在UNIX时间执行此操作。
以下是我所做的,但我刚刚意识到做strtotime("18:00")
实际上并没有特别给我这个时间。我还有一个选择日期列表,例如日期可以是“2012年3月6日星期二”(unix格式为:1330992000
)。我希望能够获取两个选定的值,然后将两个unix时间戳一起添加,以便将其插入数据库中。例如,用户选择时间17:00,这将给我1332950400
(我知道这是错误的),然后是2012年3月6日星期二,这将给我1330992000
。我希望能够将两个时间戳一起添加到2012年3月6日星期二18:00以Unix时间戳格式。
public function timeSelectList()
{
//using actual unix time instead of strtotime to save it from having to call the function each time.
$startTime = 1332889200; //strtotime('00:00');
$endTime = 1332975300; //strtotime('23:55');
$now = $startTime;
$startSelectList = '<label for="startSelect">Start Time</label><select name="startSelect" id="startSelect">';
$endSelectList = '<label for="endSelect">End Time</label><select name="endSelect" id="endSelect">';
//populates the select list with the starting date of the course up to the next six months
while($now <= $endTime)
{
if($now == 1332950400)// strtotime('17:00')
{
$startSelectList .= '<option value="'.$now.'" selected="selected">'.date('H:i', $now).'</option>';
$endSelectList .= '<option value="'.$now.'">'.date('H:i', $now).'</option>';
}
else if($now == 1332954000)//strtotime('18:00')
{
$startSelectList .= '<option value="'.$now.'">'.date('H:i', $now).'</option>';
$endSelectList .= '<option value="'.$now.'" selected="selected">'.date('H:i', $now).'</option>';
}
else
{
$startSelectList .= '<option value="'.$now.'">'.date('H:i', $now).'</option>';
$endSelectList .= '<option value="'.$now.'">'.date('H:i', $now).'</option>';
}
$now += 300; //increment 5 minutes (300 seconds = 5 minutes
}
$startSelectList .= '</select>';
$endSelectList .= '</select>';
return $startSelectList.$endSelectList;
}
答案 0 :(得分:0)
有点不清楚结果形式是什么样的。尽管如此,在这些情况下,字符串数学比日期数学更容易。
例如,将日期和时间一起添加为字符串,然后确定它的时间戳。
$date_string = $date . ' ' . $time; // '2012-03-28 18:00'
$timestamp = strtotime($date_string);
注意:您当然希望事先进行一些验证或字符串格式化。但上面应该是你需要的最后一块。