2

形式の時刻を生成する必要があります : の[ 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パーツがないことですが、DB に挿入するために必要です。

だから私はちょうどそれをランダムにしようとしました:

$rand = rand(00,24); 
$datenew = date('Y-m-d '.$rand.':i:s', strtotime($date));

しかし、それは私が必要とするような4、または必要な場所などを生成します:60406

$rand = rand(0,2) . rand(1,4) ;
$datenew = date('Y-m-d '.$rand.':'.$rand.':s', strtotime($date));

しかし、それは私には明確にエレガントではないように思えます。

分も必要なので、何らかの方法でフォーマットする必要がありますrand(00,60)

しかし、それを組み合わせると、次のような非現実的な時間も作成できます24:26:00

では、 format で時間をかけて7/03/2013、変換しH:i:sてランダムな時間、分 (およびおそらく秒) を追加するにはどうすればよいですか。

4

3 に答える 3

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

実際に見る

時間は、コードを実行するタイミングによって異なります。

于 2013-03-28T13:58:02.137 に答える
4

代わりに使用できますY-m-d 00:00:00。または、ランダムにする必要がある場合は、次のようなものを使用できます。

date('Y-m-d ' . sprintf('%02d:%02d:00', mt_rand(0, 23), mt_rand(0, 59)));
于 2013-03-28T13:57:45.550 に答える
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));
于 2013-03-28T14:03:35.980 に答える