如何随时间填充选择列表?

时间:2012-03-28 15:56:32

标签: php unix-timestamp selectlist

我想填充一个选择列表,使其从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;
}

1 个答案:

答案 0 :(得分:0)

有点不清楚结果形式是什么样的。尽管如此,在这些情况下,字符串数学日期数学更容易。

例如,将日期和时间一起添加为字符串,然后确定它的时间戳。

$date_string = $date . ' ' . $time; // '2012-03-28 18:00'
$timestamp = strtotime($date_string);

注意:您当然希望事先进行一些验证或字符串格式化。但上面应该是你需要的最后一块。