2016-07-03 8 views
1

y2軸(右)を時、分、秒で表示しようとしていますが、返される値が正しくありません。nvd3時間H:M:S軸の表示が正しくない

私はGMTで、次のUNIXタイムスタンプがあります。しかし、nvd3チャートに示す値iはエポックコンバータを使用する場合、私は午前の値を見ています..私は全く期待していたものではないです

 [1396303200000, 1481501473], //should display on y2axis as 00:11:13 
     [1398895200000, 1467497437], //should display on y2axis as 00:10:37 
     [1401573600000, 1481501521], //should display on y2axis as 00:12:01 
     [1404165600000, 1481501493], //should display on y2axis as 00:11:33 
     [1406844000000, 1481501630], //should display on y2axis as 00:13:50 
     [1409522400000, 1481501668], //should display on y2axis as 00:14:28 
     [1412114400000, 1481501615], //should display on y2axis as 00:13:35 
     [1414796400000, 1481501605], //should display on y2axis as 00:13:25 
     [1417388400000, 1481501557], //should display on y2axis as 00:12:37 
     [1420066800000, 1481501567], //should display on y2axis as 00:12:47 
     [1422745200000, 1481501501] //should display on y2axis as 00:11:41 

を期待している。

は、次のコードを試してみましたが、値が依然として正しく表示されます。また、試してみました

 chart.y2Axis 
      .tickFormat(function(d) { 
       return d3.time.format('%H:%M:%S')(new Date(d)) 
      }); 

return d3.time.format('%X')(new Date(d)) 

は誰かが問題になる可能性がありますどのような説明を助けることはできますか?

全作業フィドルと、ここでのコードをhttp://jsfiddle.net/wrcjp79o/2/

答えて

1

のJavaScript、まずnew Date(value)コンストラクタexpects

- 1970年1月午後12時00 1 からのミリ秒の数を表す整数値:00 UTC(Unix Epoch;ただし、ほとんどのUnix のタイムスタンプ機能は数秒でカウントされます)。

あなたは、1000


セカンドによってので、複数、それに秒を与えているあなたは、ローカル時刻に変換しd3.time.formatを、使用しています。常にUTCが必要な場合は、d3.time.format.utcを使用します。


chart.y2Axis 
     .tickFormat(function(d) { 
      return d3.time.format.utc('%H:%M:%S')(new Date(d * 1000))    
     }); 

fiddleを更新しました。

+0

こんにちは、よろしくお願いします。あなたの提案に続いて、黒線の上にマウスを置いたときの値は正しいように見えますが、右のy2軸はこれらの値を表現していないので、小文字ではありません – user3436467

+0

心配しません。値の1つ(シリーズの2番目の値)が範囲外でy2軸がひっくり返っていました。 – user3436467

関連する問題