我需要从看起来像7/03/2013
的字符串中生成一个时间格式:[ Y-m-d H:i:s ]
(是的,可以是7或07(。
我使用
$date = '7/03/2013';
$date = date('Y-m-d H:i:s', strtotime($date));
这很好用。那么问题出在哪里呢?
问题是我没有H:i:s
部分,但我需要它才能插入数据库。
所以我只是试着随机选择:
$rand = rand(00,24);
$datenew = date('Y-m-d '.$rand.':i:s', strtotime($date));
但这产生了像4
或6
这样的时间,其中我需要04
和06
,所以:
$rand = rand(0,2) . rand(1,4) ;
$datenew = date('Y-m-d '.$rand.':'.$rand.':s', strtotime($date));
但在我看来,这显然不优雅。
我也需要会议记录,所以我需要以某种方式格式化rand(00,60)
;
但这种组合也会产生像24:26:00
这样不切实际的时代
那么,我如何利用格式7/03/2013
的时间,转换为H:i:s
并添加随机的小时、分钟(可能还有秒(
$dt = DateTime::createFromFormat('n/d/Y', '7/03/2013');
echo $dt->format('Y-m-d H:i:s');
看到它在行动
时间会因运行代码的时间而异。
您可以使用Y-m-d 00:00:00
。或者,如果你需要它是随机的,你可以使用这样的东西:
date('Y-m-d ' . sprintf('%02d:%02d:00', mt_rand(0, 23), mt_rand(0, 59)));
这将为HH:ii:ss 生成一个随机数
$date = '7/03/2013';
$new_date = date('Y-m-d', strtotime($date));
$new_date .= date(' H:i:s', mt_rand(0,1262055681));