これはバグでしょうか、ここで何か不足しています。 。何が間違っている? 32ビットシステム上でなぜgetdate(1500000000)は2017年7月7日を返しますが、getdate(2500000000)は2月13日を返します1913
答えて
2,500,000,000
は、32ビット整数の最大値を超えています。
私は前もって答えを知らなかった。これらは私がこれを理解するために使用するリソースです: http://php.net/manual/en/language.types.integer.php
INT max size for 32bit system
Yup!私は[John3136](http://stackoverflow.com/a/43531455/1370831)の答えを読んだ後、それを学び、不正確さを取り除くために鉱山を編集しました。あなたは素早くしています;) – heylookltsme
だから、私はそれをどのように扱うべきですか?私のプロジェクトは結局クラッシュするでしょうか? – Marange
@Marange - 64ビットPHPに切り替えるか、UNIXタイムスタンプではなくDateTimeオブジェクトを使用する –
25億= 0x9502F900 = 1001 0101 0000 0010 1111 1001 0000 0000
すなわち、符号ビットがセットされているので、あなたが実際に負の数を持っています。 1970年に始まった宇宙(UNIXによる)以来、1913年の日付は負のタイムスタンプの明確な症状です。
- 1. Var whatever = new日付(年、月、0).getDate()?
- 2. なぜGetDate()は明日の日付を返しますか?
- 3. strtotime( "5th monday september 2017")は "2017年2月10日"を返しますか?
- 4. 2012年2月7日火曜日に変換する日付2012年2月7日
- 5. 2012年2月7日に類似した日付形式をTSQLを使用して返す方法は?
- 6. GETDATE先月
- 7. Coverting 2011年9月13日12時00分00秒AM 2011年9月13日
- 8. ERROR:属性「2017年2月28日」
- 9. php getdate返された日付は2時間です
- 10. 方法3:31 pmの2016年7月7日
- 11. 現在のgetdateの各月の再帰的な初日
- 12. JavaScriptの新しい日付()は1969年12月31日に返されます
- 13. dateutils rruleは2ヶ月離れた日付を返します。
- 14. 生年月日から年月日
- 15. javascript setDate 1月が30日で、7月31日から8月30日に変更されました。
- 16. FBStartベトナム6月7日、2016
- 17. プラグイン「.IGNOREは」更新2017年2月2日
- 18. 年、月、日を計算します
- 19. Solr年月日までにデータを返すクエリ
- 20. 年/月/日を年月日に変更する
- 21. JavaのgetDateが間違った日付を返す
- 22. datetimepicker getDateを使用してUTC形式の日付/時刻を返します
- 23. PHPの日付 - 86400 * 7平日 - 月曜日はいつも月曜日ではありませんか?
- 24. Bigqueryの完全な日付(年月日)〜(年月)
- 25. Python形式の日付は「1991年1月1日月曜日」
- 26. DateTime.Parseは今日(2012年3月1日)失敗します! o_0
- 27. Angularjs - フォーマットの日付(2016年1月13日)
- 28. 普通の日付の形式 "Swiftの2007年6月13日"
- 29. 生年月日を取得するロジック年齢から年月日を表現します
- 30. Moment.jsは月の最終日に1を返します
あなたが進数、32ビットのint型などについて何を知っていますか? – John3136
あなたのコードはどこですか? –
私はなぜそれが起こっているのかわからないので私は尋ねています。私はUNIXのタイムスタンプをたくさん使っているので、私のプロジェクトが地獄になるかもしれないことを恐れています。 – Marange