質問

カレンダースクリプトを実行しているときに、PHPのタイムスタンプには2038に制限があることがわかりました。実際にはどういう意味ですか?2050や2039ではなく2038なのはなぜですか?タイムスタンプが特定の日付(1970)からの秒数だけをカウントするのになぜ制限があるのですか?

役に立ちましたか?

解決

制限は、ほとんどのCライブラリがそのカウントを表すために使用する4バイトの符号付き整数によって課せられます。簡単な計算(365日を想定していますが、正確には正しくありません): ジェネラコディセタグプレ

これは、下限が約1900であることも意味します。一部のライブラリでは64ビットのエポックカウントが導入され始めていますが、現時点ではほとんどありません。

他のヒント

32ビット整数の最大値は2,147,483,647です。それに+1を加えると、-2,147,483,647になります。01-01-1970 00:00:00から2,147,483,647秒は2038年1月19日です。さらに1秒追加すると、1902年のどこかに日付が表示されます。

私の推測では、それは固定ビット数で格納されます。これは、タイムスタンプが取得できる大きさの制限を意味します。それを正確に理解するためにいくつかの数学を行うことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top