1

私は今朝ずっとjavascriptsのタイムスタンプをいじっています。実行して無効なタイムスタンプを取得し続ける

today = (new Date()).setHours(0,0,0,0)またtoday = (new Date()).getTime()

これらの2つの出力13389300000001338978151748

これは単なるchromejsエンジンのエラーだと思いましたが、Firefoxで再現しました。これらの2つのステートメントの期待される出力はとでし13389300001338977700

ただし、これには修正があります。修正はこれです:

today = parseInt(((new Date()).setHours(0,0,0,0) * Math.pow(10, -3)).toFixed(0))

またはsetHours()なし

today = parseInt(((new Date()) * Math.pow(10, -3)).toFixed(0))

これは一般的なバグですか?これらの結果を得るために私は何か間違ったことをしていますか?タイムスタンプの形式はtimestamp*10^3です。

編集:

結局のところ、JAVASCRIPTがミリ秒単位で出力している間、私は数秒で時間を期待していました(PHPだと思います)。phpJSの日付/時刻ライブラリを使用していますが、javasctiptのタイムスタンプはstrtotime()およびdate()とネイティブに互換性がないようです。

私はUNIXタイムスタンプを使用しようとしていましたが、それらは秒単位です。

4

3 に答える 3

7

getTime()秒ではなく、1970/01/01 からのミリ秒数を返します。

//milliseconds
var milliseconds = new Date().getTime();

//seconds
var seconds = new Date().getTime() / 1000;
于 2012-06-06T10:27:16.790 に答える
1

これはバグではありません。JavaScript はミリ秒単位の精度でタイムスタンプを提供しますが、秒単位のタイムスタンプを期待しています (なぜですか?)。

于 2012-06-06T10:27:34.250 に答える
1

Unix タイムスタンプは秒を使用しますが、Javascript タイムスタンプはミリ秒を使用します! そのため、multiply.divide を 1000 で割る必要があります。

http://www.w3schools.com/jsref/jsref_utc.asp

UTC() メソッドは、世界時に従って、指定された日付から 1970 年 1 月 1 日の午前 0 時までのミリ秒数を返します。

于 2012-06-06T10:31:40.613 に答える