問題タブ [year2038]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 32 ビット ruby 1.9.2p290 時間は 2038 年を処理できませんか?
32 ビットの ruby 1.9.2p290 (これを使用する必要があります) は、現在の時刻に 25 (24 ではありません!) 年を追加するのに苦労しているようです。
プロデュース:
more_time.class = Fixnum
more_time.class = Fixnum
ruby_time.rb:11:in `+': time + 788400000.000000 out of Time range (RangeError) from ruby_time.rb:11
2038 年問題に遭遇していますか? 64 ビットの Ruby 1.9.2-p290 ではこの問題は発生しません。
mysql - エポックから 136 年を格納するために 32 ビット全体を使用しないのはなぜですか?
UNIX やMySQL のタイムスタンプなどで何度も見てきました。エポックは 1970 年 1 月 1 日から始まりますが、記録可能な最大の年は 2038 年です。
したがって、完全な 32 ビットを使用すると、問題なく 2106 年に自然に到達します。しかし、どうやら 2038 年は 31 ビットにしか対応していないようです。では、なぜ 1 ビットを捨てるのでしょうか。完全な 32 ビットを使用することで、最初に地球を破壊する可能性があるため、問題を解決する必要がないことを期待できます...
コメントへの反応: もちろん、署名されているためですが、タイムスタンプに署名する必要があるのはなぜですか?? それがこの質問のポイントです。
perl - perl、1970 年からの int 秒数
EPrintsソフトウェアの古いリリースを使用して、この関数 EPrints::Time::datestring_to_timetを使用して、1970 年以降の整数秒数を返します。
遠い将来の年で使用すると、負の数が得られます。
結果:
ここで何が問題なのですか?
php - PHP mktime が 64 ビット システムで大きな整数値を返さない
2038 年よりも大きな unix_timestamps を取得しようとすると、PHP 関数mktimeに問題があります。64 ビット OS を使用しています。
サーバー上の PHP バージョン:
php -v
PHP 5.1.6 (cli) を提供します (ビルド: 2010 年 11 月 29 日 16:47:46)
php -r 'echo PHP_INT_MAX;'
9223372036854775807を与える
しかし
php -r 'var_dump( mktime(0, 0, 0, 4, 1, 2099) );'
bool(false) を与える
開発サーバー
php -r 'var_dump( mktime(0, 0, 0, 4, 1, 2099) );'
では int(4078677600) が返されます
この PHP 関数が 64 ビット システムで正しく動作しない原因は何ですか? また、 strtotimeは年が 2038 より大きい日付では機能しません
php - PHP の date() が 32 ビットで高いタイムスタンプで失敗する
私はこの問題に遭遇しました:
望ましい&正しい結果(ローカルホスト上):
日、2114 年 9 月 30 日 10:31:58 +0100
誤った結果 (リモート):
1978 年 8 月 24 日木曜日 04:03:42 +0100
32 ビット プラットフォームでスクリプトを実行すると、悪い結果が得られます。有名なY2038問題だと思いますが、どうすれば直せますか?
タイムスタンプをエコーすると(変数に保存されている場合)、正常に表示されますが、date()
破棄されます(int32にキャストすると思います)。
4567743118
[該当する場合は、debian リポジトリの PHP 5.4.4 です]
php - PHP 2038年以降の日付をローカライズするにはどうすればよいですか
PHPで2038年以降のローカライズされた日付を使用しようとしています
strftime はタイムスタンプを使用するため、2038 年以降は機能しません
DateTime はローカライズされていません...
だから私は DateTime で IntlDateFormatter を使用しようとします:
ここで私が得るもの:datefmt_format:タイムスタンプを取得できません:U_ILLEGAL_ARGUMENT_ERROR
実際、IntlDateFormatter は内部的に日付をタイムスタンプに変換すると思います...
では、php で 2038 年以降の日付をローカライズするにはどうすればよいでしょうか。
linux - Linux カーネルの 64 ビット time_t
カーネル 3.19.1 をコンパイルしましたが、まだ問題がありtime_t
ます。cout << sizeof (time_t);
私の意図した8バイトではなく、4バイトのサイズを与える単純なプログラムです。
make menuconfig 中に特定のオプションをオンにする必要がありますか?