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

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

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

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

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

Q&A

解決済

4回答

2810閲覧

Javascript:yyyy年mm年dd日をDate型にフォーマットしたい

igaiga

総合スコア144

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

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

0グッド

1クリップ

投稿2019/01/15 01:49

yyyy年mm年dd日をDate型にフォーマットしたいのですが、やり方を探しても見つからなかったので教えていただけると助かります。
よろしくお願いいたします。

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

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

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

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

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

guest

回答4

0

ベストアンサー

自力でやるしかありません。

javascript

1var matched = /(\d+)年(\d+)月(\d+)日/.exec('2019年1月15日'); 2// 月は0始まりなので、1を引かないといけない 3var date = new Date(matched[1] - 0, matched[2] - 1, matched[3] - 0);

投稿2019/01/15 01:55

maisumakun

総合スコア145183

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

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

igaiga

2019/01/15 02:00

関数が用意されているわけではないんですね。。。 いつもありがとうございます。助かりました。
guest

0

日付を扱うならMoment.jsを使いましょう。
これは全世界で利用されている日付管理のJavaScriptライブラリで、
素のJSが抱える使い勝手が悪いDateをよしなにやってくれるラッパーです。

yyyy年mm年dd日をDate型にフォーマットしたいのですが

String + Formatの項目を参照。

JavaScript

1moment("1995年12月25日", "YYYY年MM月DD日").format('YYYY-MM-DD'); 2// "1995-12-25"

最初のmoment関数を実行した所で日付を正しくパースしたMomentオブジェクトになっている為、
.formatメソッドを実行してハイフン区切りの文字列として取り出せていることがわかります。

現在の時刻と比較させたいです。

何時何分何秒?地球が何回回った時???
JavaScriptの現在の時刻はミリ秒で取れるので、完全に一致させる事はほぼ不可能です。
なのでこの日の10時〜11時までみたいなゆるゆるの比較をする必要があります。

これを組むのが結構たいへん、でもMoment.jsならこの辺もtrue/false返してくれるメソッドがあるのでわりと楽に実装できます。
ドキュメントをあさってみてください。

投稿2019/01/15 02:27

miyabi-sun

総合スコア21158

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

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

igaiga

2019/01/15 02:46

ありがとうございます。GASにもmomentライブラリが有りましたので利用しました。
igaiga

2019/01/15 03:06

あ、比較だけだと思ってました。日付のフォーマットも出来るんですね^^;
miyabi-sun

2019/01/15 03:11

GASのタグを見落としてましたが対応しててよかったです。
guest

0

javascript

1function newDate (str) { 2 const reg = /^(?:(?!(?:[02468][1235679]|[13579][01345789])00[年\-/]0?2[月/\-](?:29|30)日?))(?:(?![0-9]{2}(?:[02468][1235679]|[13579][01345789])[年\-/]0?2[月/\-](?:29|30)日?))(?:(?![0-9]{4}[年\-/](?:0?2|0?4|0?6|0?9|11)[月/\-]31日?))([0-9]{4})[年\-/](0?[1-9]|1[0-2])[月/\-](0?[1-9]|[12][0-9]|3[01])日?$/; 3 let d = reg.exec (str); 4 return d ? new Date (d[1], d[2]-1, d[3]): null; 5} 6 7console.log (newDate ('2019年2月28日')); 8

投稿2019/01/15 02:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

Javascript

1var input_date= new Date("2018-10-12");

こういうことではない?

投稿2019/01/15 01:53

yamato_user

総合スコア2321

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

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

igaiga

2019/01/15 01:57

そこまではわかるのですが、最終的には文字列としてあるものをDate型にフォーマットして、現在の時刻と比較させたいです。
miyabi-sun

2019/01/15 06:51 編集

JSのDateStringは実装がまちまちで辛いですが、 GASなら実行環境が固定されるのでそれなりになんとかなりそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問