我需要从看起来像[ Y-m-d H:i:s ]
的字符串生成格式时间:7/03/2013
(是的,可以是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
并添加随机小时,分钟(也许是秒)
答案 0 :(得分:6)
$dt = DateTime::createFromFormat('n/d/Y', '7/03/2013');
echo $dt->format('Y-m-d H:i:s');
时间将根据您运行代码的时间而有所不同。
答案 1 :(得分:4)
您可以使用Y-m-d 00:00:00
代替。或者,如果您需要它是随机的,您可以使用类似的东西:
date('Y-m-d ' . sprintf('%02d:%02d:00', mt_rand(0, 23), mt_rand(0, 59)));
答案 2 :(得分:1)
这将产生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));