以下の行から -
$date = strtotime('-' . (-100) . ' years');
4654765319
ローカル コードでこれを試すと、値が得られます。同ラインは、の値を与える$date
とNULL
、ライブサイトにしようとしたとき。この行には変数が含まれていないため、他のコードが影響を与えることはありません。
マイナス記号を削除すると、ローカルとライブの両方で正しい値が得られます -ie
$date = strtotime('-' . (100) . ' years');
-1656664323
どちらの場合でも同じ出力が得られます。
シンボルをstrtotime()
使用して2つのプラットフォームで動作が異なる理由を誰かが理解できます-
か?
ありがとう。
おそらく、あなたは 32 ビット バージョンの PHP を実行しています。PHP ドキュメントからの注意:
タイムスタンプの有効な範囲は通常、1901 年 12 月 13 日金曜日 20:45:54 UTC から 2038 年 1 月 19 日火曜日 03:14:07 UTC です。(これらは、32 ビット符号付き整数の最小値と最大値に対応する日付です。)
代わりに、PHP のDateTime
クラスを使用できます。
$date = new DateTime();
$date->modify('-' . (-100) . ' years');
echo $date->format('U');
これが問題の明確な再現です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加