2

strtotime($my_time);PHPの数学で使用するタイムスタンプを作成するために使用しています。

変数$my_timeHH:mm:ss、データベースから取得された 24 時間形式です。

時刻を設定していますが、どの日付が生成されているかわかりません。このため、固定の日付を設定しようとしています。次のことを試しましたが、計算で間違った結果が得られます。

strtotime('2007-12-21', $my_time);

strtotime( '+1 day', strtotime('2007-12-21', $my_time); //should produce 2007-12-21 00:00:00 ?

strtotime()固定日付と動的時間を設定する方法を理解してください。

注:DateTimeクラスは、私が使用しているコードのオプションではありません。

4

3 に答える 3

3

strtotime は、PHP ドキュメントに見られるように、Unix タイムスタンプ形式の整数を 2 番目の値とみなします。

次のように、コンマの代わりにドットを使用するつもりだったのかもしれません。

strtotime('2007-12-21 ' . $my_time);

strtotime( '+1 day', strtotime('2007-12-21 ' . $my_time);
于 2012-06-17T19:28:53.463 に答える
2

単にスペースの問題かもしれません。試す:

strtotime( '+1 day', strtotime('2007-12-21 ' . $my_time);

参考までに、$my_time実際に の値が含まれている場合は、00:00:00から安全に省略できますstrtotime()。それがなくても機能します。

于 2012-06-17T19:24:53.867 に答える
2

2 つの引数を提供するのではなく、文字列を 1 つの引数に連結する必要があります。

strtotime('1970-01-01 ' . $my_time);

また、日付を 1970-01-01 に切り替えました。これは、UNIX のタイムスタンプが開始する時刻であり、作業するのに数秒しか与えられないからです。ある数値が別の数値よりも大きいかどうかが一目でわかり、86400 を超えるなどの障害を簡単に見つけることができるため、この方法でトラブルシューティングを行う方が簡単な場合があります。

于 2012-06-17T19:26:00.513 に答える