PHP转换时间格式并添加随机时间变量

时间:2013-03-28 13:55:21

标签: php random time formatting

我需要从看起来像[ 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));

但是这会产生46这样的时间,我需要0406所以:

$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并添加随机小时,分钟(也许是秒)

3 个答案:

答案 0 :(得分:6)

$dt = DateTime::createFromFormat('n/d/Y', '7/03/2013');
echo $dt->format('Y-m-d H:i:s');

See it in action

时间将根据您运行代码的时间而有所不同。

答案 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));