質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1725閲覧

moment.jsの挙動がおかしい気がします。

saito3

総合スコア11

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/10/16 07:02

moment.jsの日付計算でお聞きしたいことがあります。
※以下少しコードを省略してます。

javascript

1let start = moment(new Date("2018-10-05")); 2let end = moment(new Date("2018-10-20")); 3 4start = start.startOf("month"); 5end = end.endOf("month"); 6 7console.log(start.format("YYYYMMDD")); 8console.log(end.format("YYYYMMDD"));

上記コードのconsole出力で、
start →20181001
end  →20181031
という出力を期待していたのですが、
両方とも20181031になってしまいます。
momentのstartOfまたはendOfを使うと、他の変数も全て処理がかかってしまうような挙動をしています。
それぞれの変数にだけstartOfやendOfの処理をしたい場合はどうすればよいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset="UTF-8" /> 5 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.js"></script> 6 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/locale/ja.js"></script> 7</head> 8<body> 9<script> 10var start = moment(new Date("2018-10-05")); 11var end = moment(new Date("2018-10-20")); 12 13// この処理自身に影響しますのでこれでOK 14start.startOf("month"); 15end.endOf("month"); 16 17console.log(start.format("YYYYMMDD")); 18console.log(end.format("YYYYMMDD")); 19</script> 20</body> 21</html>

でなりませんね。
ソースのコメントで書いておきましたが、自身に影響する関数なので注意してください

投稿2018/10/16 07:14

rururu3

総合スコア5545

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こちらの環境では問題なく動作しています。
https://codepen.io/SE-studying-now/pen/rqpamb?editors=1111

省略した部分に問題があったのかもしれないですね。
ちなみに使用しているmoment.jsのバージョンは2.22.2です。

投稿2018/10/16 07:10

SE-studying-now

総合スコア351

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

saito3

2018/10/16 07:27

start = end; としている部分がありそこが問題でした。 お騒がせしてすみません。
SE-studying-now

2018/10/16 07:30

それは同じ結果になりますねw 大した問題でなくて良かったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問