2

我有一个关于像这样 2013-09-18 12:30 随机 PHP 日期的问题。我想为 6 个用户随机选择 6 个日期,所以日期不会混合(日期可以相同,但时间必须是 +/- 几个小时)。到我使用的随机日期:

    <?php 
    echo date('Y-m-d', strtotime( '+'.mt_rand(0,31).' days')); 
    ?> 

并取得了成功,但我可以随机选择几小时或几分钟(我不需要几秒钟)。该页面用于为患者预约预约并为他们提供随机治疗日期。我还有一个 eventCalendar 来显示日期。

PS是否可以输入多个日期,如数组(date1,date2,date3)并在mysql表中显示我总是得到0000-00-00。提前致谢。

4

2 回答 2

0

只需将随机小时数添加到您的字符串中strtotime,可以在几分钟内执行相同的操作

小时

<?php 
echo date('Y-m-d H:i', strtotime( '+'.mt_rand(0,31).' days '.mt_rand(9,17). 'Hours' )); 
?> 

带小时和分钟

<?php 
echo date('Y-m-d H:i', strtotime( '+'.mt_rand(0,31).' days '.mt_rand(9,17). 'Hours '.mt_rand(0,30). 'Minutes' )); 
?> 
于 2013-09-18T08:14:57.433 回答
0

试试这个:

<?
$date = date('Y-m-d', strtotime( '+'.mt_rand(0,31).' days')); 
for ($i = 0; $i < 6;$i++){
   $hour = str_pad(mt_rand(0,23), 2, "0",STR_PAD_LEFT); 
    $min = str_pad(mt_rand(0,59), 2, "0",STR_PAD_LEFT);
    echo $date . ' '. $hour .':'.$min .'<br>'; 
}
?>

进行查询和不同的日期(应该工作):

<?
    $insert = '';
    for ($i = 0; $i < 7;$i++){
       $date = date('Y-m-d', strtotime( '+'.mt_rand(0,31).' days')); 
       $hour = str_pad(mt_rand(0,23), 2, "0",STR_PAD_LEFT); 
        $min = str_pad(mt_rand(0,59), 2, "0",STR_PAD_LEFT);
        $dateTime =  $date . ' '. $hour .':'.$min ; 
        $insert .= "('".$dateTime."'),";
    }
    $query = "INSERT INTO tableName (dateField) VALUES ". substr($insert,0,-1);
    echo $query;
?>
于 2013-09-18T08:19:58.290 回答