現在、moment.jsを使用し、日付処理のスクリプトを作っています。
moment()で今の時刻をもってくるのは問題ないのですが。
2018年12月7日の3日後 という日付を持ちたいです。
下記のようなコードを記述しました
Javascript
1var $sitei = moment("2018-12-07 18:00", "YYYYMMDD HH:mm"); 2var $now = $sitei.add(1, 'days'); 3console.log($now); 4//$nowは 12月8日であってほしい
ですが、コンソールでは 7日の日付のままになっています。
こちらのサイトで同じような質問をされている方がいらっしゃいますが、何も変わりません。
https://stackoverflow.com/questions/22547129/momentjs-date-string-add-5-days
助けていただけると幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
ちょっと分かりづらかったので回答に起こしました。
このサイトで実際に入力して出力結果を確認しました。
http://jsfiddle.net/remus/rLjQx/
JavaScript
1var sitei = moment("2018-12-07 18:00", "YYYYMMDD HH:mm"); 2var new_date = sitei.clone().add(1, 'days'); 3console.log(new_date);
// console.logの出力結果 e {_i: "2018-12-07 18:00", _f: "YYYYMMDD HH:mm", _l: undefined, _isUTC: false, _a: Array(7), …} // 各プロパティの詳細 { _a: (7) [2018, 11, 7, 18, 0, 0, 0], _d: Sat Dec 08 2018 18:00:00 GMT+0900 (日本標準時) {}, _f: "YYYYMMDD HH:mm", _i: "2018-12-07 18:00", _isUTC: false. _l: undefined. __proto__: Object }
2018年12月7日の3日後 という日付を持ちたいです。
なんで3日後が欲しいのに.add(1, 'days')
やねんというツッコミはさておき、
e {_i: "2018-12-07 18:00",
の下りを見て「日付変わってないじゃん!」と戸惑ってしまったように見受けられます。
実体はDateTimeで管理されている_d
プロパティのようで、_a
や_i
は12/7を指しっぱなしなので微妙感あふれるライブラリですね。
結論としては面倒でもちゃんと.format()
で文字列におこすべきですね。
sitei.clone().add(1, 'days');
sitei変数に代入したmomentですが、単なるオブジェクトなので基本参照の値渡し。
2行目のaddでsiteiの日付も巻き込まれて+1日されてしまっているはずで、
普通に考えればsiteiはそのままの日付を維持して欲しいはずなので、いつかバグとして牙を向いてくる存在になります。
add等のメソッドで日時を変更する際は、常に.clone()
を走らせてコピーを取るようにしてくださいね。
投稿2018/12/07 11:01
総合スコア21475
0
ベストアンサー
addの仕方は間違っていません。
_dにadd後の日付が保管されています。
例えば下記のようにすればちゃんと表示されますよ。
js
1console.log($now.format( "YYYYMMDD HH:mm"));
結果:20181208 18:00
投稿2018/12/07 07:10
編集2018/12/07 07:12総合スコア80888
0
add
だとaddした$sitei
が1日後になりますが、それでは要件を満たさないということですね?
var $now = $sitei.clone().add(1, 'days');
とすれば良いと思います。
投稿2018/12/07 07:06
総合スコア12705
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/07 09:05

0
投稿2018/12/07 07:24
総合スコア305
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/07 09:25 編集

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。