質問するログイン新規登録
JavaScript

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

Q&A

解決済

1回答

247閲覧

JavaScript Date(日付) データ配列を yyyy/MM/dd 形式にフォーマットできない

yukki-1227

総合スコア53

JavaScript

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

0グッド

0クリップ

投稿2023/11/29 05:51

0

0

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • ▲▲機能を動作するようにする

前提

指定日よりも一週間前の配列を取得するという関数を作りたいです(yyyy/MM/dd 形式)
日付は取得できますが、
例えば"2023/7/9"となってしまい、yyyy/MM/dd 形式にフォーマットされていない。
2023/07/09などどいう形にしたいyのですが、そういうyyy/MM/dd 形式になりません。何が間違っているのか全く分かりません。助けてください

該当のソースコード

javascript

1function beforeWeekGet(pointdate){ 2 var weeks = []; 3 for (var i = 0; i <= 6; i++) { 4 const date = new Date(pointdate); 5 const day = date.setDate(date.getDate() - i); 6 const newDate = new Date(date.toLocaleDateString("ja-JP", { 7 year: "numeric", 8 month: "2-digit", 9 day: "2-digit", 10 })); 11 const year=newDate.getFullYear(); 12 const month = newDate.getMonth() + 1; 13 const newDay = newDate.getDate(); 14 15 weeks.push(year+"/"+month + "/" + newDay ); 16 } 17 // console.log(weeks); 18 weeks.reverse(); 19 return weeks; 20} 21 22// 適当に日付を指定 23var result=beforeWeekGet("2023/07/09"); 24console.log(result); 25// => 26// "2023/7/3" 27// "2023/7/4" 28// "2023/7/5" 29// "2023/7/6" 30// "2023/7/7" 31// "2023/7/8" 32// "2023/7/9"となってしまい、yyyy/MM/dd 形式にフォーマットされていない。 33// 2023/07/09などどいう形にしたい

試したこと

.toISOString().split("T")[0].replaceAll("-", "/")など試しても効果なかったです。

補足情報(FW/ツールのバージョンなど)

vscodeで検証中

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

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

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

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

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

guest

回答1

0

ベストアンサー

テキストにキャストしたものをさらにDateで日付に変えてはだめでしょう

javascript

1function beforeWeekGet(pointdate){ 2 const weeks = []; 3 const date = new Date(pointdate); 4 for (var i = 0; i <= 6; i++) { 5 weeks.unshift(date.toLocaleDateString("ja-JP", { 6 year: "numeric", 7 month: "2-digit", 8 day: "2-digit", 9 })); 10 date.setDate(date.getDate()-1); 11 } 12 return weeks; 13} 14const result=beforeWeekGet("2023/07/09"); 15console.log(result);

投稿2023/11/29 06:12

yambejp

総合スコア118079

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

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

yukki-1227

2023/11/29 06:27

本当にありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問