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

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

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

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

Q&A

解決済

4回答

642閲覧

toISOString()で25:00:00で取得。

tkshp

総合スコア174

JavaScript

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

0グッド

0クリップ

投稿2018/11/06 08:46

編集2018/11/06 08:59

前提・実現したいこと

toISOString()で変換して、25:00:00で取得したいのですが、01:00:00で取得されてしまいます。
25:00:00で取得するにはどうすればよいでしょうか?

toISOString()で変換するのが不可能であれば、他の方法でもいいのでご教示いただけませんか?
Dateの引数に与えられたような時刻形式を25:00:00に変換したいです。

該当のソースコード

javascript

1var date = new Date('Wed Nov 07 2018 10:00:00 GMT+0900 (東京 (標準時))'); 2 3console.log(date.toISOString()); //2018-11-07T01:00:00.000Z

試したこと

こちらのサイトを見ましたが、特に書き方は載っていませんでした。

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

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

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

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

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

yambejp

2018/11/06 08:48

一日は24時間ですが・・・
tkshp

2018/11/06 08:52 編集

当日扱いで、25:00:00を扱いたいのですが、無理でしょうか?
Lhankor_Mhy

2018/11/06 08:57

wikipediaによると、ISO8601は「時刻の表記には hh:mm:ss の形式が用いられる。hh は時で 00 から 24 の値をとる」とあるので、ISO日時表示の範囲では難しいのではないでしょうか。
yambejp

2018/11/06 09:00

結局1時なのか25時なのか49時なのか、作成者のさじ加減なので、細かい仕様を指定しない限り判断が付きませんね。toISOStringでできないことだけは確かということです。
tkshp

2018/11/06 09:03

ご回答ありがとうございます。自分で考えてみます。
guest

回答4

0

ベストアンサー

無理です

ISO 8601の定義上、時刻は「00 から 24 の値をとる。」ことになっているので、25:00:00という値は、ISO 8601として正しくない以上、.toISOStringで生成されることはありません。

投稿2018/11/06 08:58

maisumakun

総合スコア145183

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

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

0

すでに解決しているようですが。

js

1var options = { 2 year: 'numeric', month: 'numeric', day: 'numeric', 3 hour: 'numeric', minute: 'numeric', second: 'numeric', 4 hour12: false 5}; 6var formatter = new Intl.DateTimeFormat('ja',options); 7var format25hour = date => formatter.formatToParts(date).map(({type, value})=>{ 8 if (type==='hour') return Number(value)+24; 9 return value; 10}).join(''); 11 12var date = new Date('Wed Nov 07 2018 01:00:00 GMT+0900 (東京 (標準時))'); 13format25hour(date); 14 15/* 162018/11/7 25:00:00 17*/

参考:Intl.DateTimeFormat.prototype.formatToParts() - JavaScript | MDN

投稿2018/11/07 03:01

編集2018/11/07 03:24
Lhankor_Mhy

総合スコア36074

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

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

0

toISOString() では出来ません。

言語として用意されているのは標準的なフォーマットのみです。
どんなときに25時と表示してほしいかは作成者が考えることですから、作成者自身が実装しないといけません。

投稿2018/11/06 08:54

mather

総合スコア6753

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

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

0

25:00という表記はISOString でないので、ご自身で書き換えるしかないと思います。

投稿2018/11/06 08:55

kei344

総合スコア69400

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問