簡體   English   中英

PHP在截止時間選項選擇中獲取當前時間

[英]PHP get current time in option select with cut-off time

我有以下效果很好的腳本:

<?php
function create_time_range($start, $end, $interval = '30 mins', $format = '12') {
    $startTime = strtotime($start); 
    $endTime   = strtotime($end);
    $returnTimeFormat = ($format == '12')?'g:i:s A':'G:i:s';

    $current   = time(); 
    $addTime   = strtotime('+'.$interval, $current); 
    $diff      = $addTime - $current;

    $times = array(); 
    while ($startTime < $endTime) { 
        $times[] = date($returnTimeFormat, $startTime); 
        $startTime += $diff; 
    } 
    $times[] = date($returnTimeFormat, $startTime); 
    return $times; 
}
$times = create_time_range('7:30', '18:30', '30 mins');
?>

<select name="time_picker">
    <option value="">Select Time</option>
    <?php foreach($times as $key=>$val){ ?>
    <option value="<?php echo $val; ?>"><?php echo $val; ?></option>
    <?php } ?>
</select>

但是,我希望對此進行更改:首先,它應該僅顯示給定當前時間的可用時隙,其次應包括2小時窗口作為“截止時間”。

實際示例和理想結果:假設它是1PM,選項select將1.)甚至不顯示1PM之前的值; 2。)僅向我顯示下一個可用時段為3PM(2小時窗口)

我已經為此苦苦掙扎了幾天,但目前沒有結果。 一些專家的建議將不勝感激

http://codepad.org/OT2Qyb00

您可以這樣做:

<?php
function create_time_range($start, $end, $interval = '30 mins', $format = '12') {
$startTime = strtotime($start); 
$endTime   = strtotime($end);
$returnTimeFormat = ($format == '12')?'g:i A':'G:i';
$hour = date('H');
$minute = (date('i')>30)?'30':'00';
$current = strtotime("$hour:$minute"); 
$addTime   = strtotime('+'.$interval, $current); 
$diff      = $addTime - $current;
$times = array(); 
while ($current < $endTime) { 
    $times[] = date($returnTimeFormat, $current) . " " . "$hour:$minute"; 
    $current += $diff; 
} 
$times[] = date($returnTimeFormat, $current); 
return $times; 
}
$times = create_time_range('8:00', '18:00', '30 mins');
?>

<select name="time_picker">
<option value="">Select Time</option>
<?php foreach($times as $key=>$val){ ?>
<option value="<?php echo $val; ?>"><?php echo $val; ?></option>
<?php } ?>
</select>

在這里,我將$ current用作基准時間,並通過獲取當前小時數來創建該時間,然后將時間舍入30分鍾,然后從中創建時間。

希望對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM