[解決済み] モーメントにデュレーションを追加する (moment.js)
2022-04-23 18:30:16
質問
モーメントバージョン: 2.0.0
ドキュメントを読んで これは簡単なことだと思いました(Chromeコンソール)。
var timestring1 = "2013-05-09T00:00:00Z";
var timestring2 = "2013-05-09T02:00:00Z";
var startdate = moment(timestring1);
var expected_enddate = moment(timestring2);
var returned_endate = startdate.add(moment.duration(2, 'hours'));
returned_endate == expected_enddate // false
returned_endate // Moment {_i: "2013-05-09T00:00:00Z", _f: "YYYY-MM-DDTHH:mm:ss Z", _l: undefined, _isUTC: false, _a: Array[7]…}
これは些細な例ですが、私はこれを動作させることさえできません。何か大きなものを見逃しているような気がするのですが、本当にわからないのです。これでもうまくいかないようです。
startdate.add(2, 'hours')
// Moment {_i: "2013-05-09T00:00:00Z", _f: "YYYY-MM-DDTHH:mm:ss Z", _l: undefined, _isUTC: false, _a: Array[7]…}
何かお手伝いいただけることがあれば、ぜひお願いします。
編集する 私の最終目標は、ここにあるようなバイナリーステータスチャートを作ることです。 http://bl.ocks.org/phobson/5872894
ご覧の通り、現在この問題を解決する間、ダミーのX値を使用しています。
どのように解決するのですか?
のドキュメントで重要なポイントを見逃しているようです。
.add()
時間を追加して元の瞬間を変異させる。
あなたはこれを、不変の結果を返す関数として扱っているように見えます。 間違えやすいですね :)
戻り値を使用する場合、それは最初に使用したものと同じ実際のオブジェクトです。 メソッドチェインするための便宜上返されているだけです。
この動作は、モーメントをクローンすることで回避できます。 ここに書かれているように .
また、単に
==
をテストすることができます。 それぞれの瞬間を同じ出力にフォーマットして、それらを比較するか、あるいは
.isSame()
メソッドを使用します。
あなたのコードは今
var timestring1 = "2013-05-09T00:00:00Z";
var timestring2 = "2013-05-09T02:00:00Z";
var startdate = moment(timestring1);
var expected_enddate = moment(timestring2);
var returned_endate = moment(startdate).add(2, 'hours'); // see the cloning?
returned_endate.isSame(expected_enddate) // true
関連
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
[解決済み] jQueryでテーブルの行を追加する
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトにキーと値のペアを追加するにはどうすればよいですか?
-
[解決済み] 指定された要素にクラスを追加するには?
-
[解決済み] Moment.jsで日付オブジェクトに変換する
-
[解決済み] モーメント js 日付時刻比較
-
[解決済み] Moment Jsで2つの日付の時差を取得する
-
[解決済み] [Solved] moment.jsのデュレーションでformat()を使用するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
親子コンポーネント通信を解決する3つのVueスロット
-
Vue+ElementUIによる大規模なフォームの処理例
-
[解決済み】React - uncaught TypeError: 未定義のプロパティ 'setState' を読み取れない
-
[解決済み】リソースの読み込みに失敗した:Bind関数でサーバーが500(Internal Server Error)のステータスで応答した【非公開
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】JavaScriptエラー(Uncaught SyntaxError: Unexpected end of input)
-
[解決済み】ExpressJS - throw er Unhandled errorイベント
-
HTML5 LocalStorage ローカルストレージとセッションストレージの使用法
-
フロントエンド非同期(アシンク)ソリューション(全ソリューション)