6

日時変換を処理するときにこの問題が発生しました。このような形式のpostgreSQLデータベースからのタイムスタンプデータがあります

"2011-04-04 19:27:39.92034"

ハイチャートに表示するには、日付または時刻オブジェクトに変換する必要があります。ミリ秒なしで、 Date.jsで簡単に変換します

しかし、ミリ秒はそのライブラリでは処理できません。Date.parse でも試しましたが、常に NaN になりました。

この問題の解決策はありますか? ありがとうございました

4

4 に答える 4

9

Date クラスに組み込まれた JS はこれを処理できるはずであり、getTime() は 1970 年開始 (UNIX 時間) からのミリ秒を返すことができます。ただし、タイムゾーンの問題に注意してください。コンストラクターは日付/時刻をローカルであると解釈する可能性がありますが、1970 年以降の getTime() のミリ秒は UTC である可能性があり、削除するのが難しい変換で焼き付けられます。

new Date("2011-04-04 19:27:39.92034").getTime()
1301941659920
于 2011-04-04T12:34:48.420 に答える
2

ローマへの多くの方法。指定されたコードは、'(datestr=) 2011-4-4 19:27:39.92' を返します。それはあなたが探しているものですか?

var darr = '2011-04-04 19:27:39.92034'.split('.')
  , dat=new Date(darr[0])
  , datestr = '';
dat.setMilliseconds(Math.round(darr[1]/1000));
datestr = [ [dat.getFullYear(),dat.getMonth()+1,dat.getDate()].join('-')
            ,' ', 
            [dat.getHours(),dat.getMinutes(),dat.getSeconds()].join(':')
            ,'.',
            dat.getMilliseconds()
          ].join('');
于 2011-04-04T14:33:50.253 に答える
0

その文字列の最後の 6 文字を切り取ることはできませんか? 次に、ミリ秒を丸め、最終的に時間オブジェクトに 1 秒を追加します。

于 2011-04-04T12:34:39.677 に答える
0

これはより簡単で、1 行です。

new Date('01/09/2015 06:16:14.123'.split(".")[0])
于 2016-08-25T11:54:41.190 に答える