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

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

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

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

Q&A

解決済

3回答

25422閲覧

JavaScriptで現在時刻から1時間前の日付データを取得したい

ricy

総合スコア48

JavaScript

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

1グッド

1クリップ

投稿2017/03/30 03:30

var date= new Date(); ->Thu Mar 30 2017 11:27:02 GMT+0900 (JST)

この1時間前の日付を取得したいです。

->Thu Mar 30 2017 10:27:02 GMT+0900 (JST)

このようにすると、

date.setHours(date.getHours()-1); ->1490840822515

想定の型ではなく、こちらに変換するメソット等あればご教示いただけないでしょうか。

rai62👍を押しています

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

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

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

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

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

guest

回答3

0

ベストアンサー

基本的には下記の方法で設定できます。

JavaScript

1var now = new Date(); 2var an_hour_ago = new Date(); 3an_hour_ago.setHours(now.getHours() -1); 4console.log(now.toLocaleString()); 5console.log(an_hour_ago.toLocaleString()); 6 7/** 8 * 出力結果 9 * 10 * "2017/3/30 12:50:58" 11 * "2017/3/30 11:50:58" 12 */

この場合、setHours() の引数が -1 や 25 など、0 ~ 24の範囲から外れていても、正しい日時に補正されます。
つまり、現在時刻が 2017/3/30 00:50:58 の時点で上記のコードを実行すると二番目の出力は "2017/3/29 23:50:58" のように補正されるという意味です。

なお、JavaScriptのDateオブジェクトの内部表現はミリ秒単位の整数値なので、整数値を加算・減算すること
で目的の日時を得ることもできます。

JavaScript

1var now = new Date(); 2var an_hour_ago = new Date(now - (1000 * 60 * 60)); 3console.log(now.toLocaleString()); 4console.log(an_hour_ago.toLocaleString()); 5 6/** 7 * 出力結果 8 * 9 * "2017/3/30 12:50:58" 10 * "2017/3/30 11:50:58" 11 */

ご参考になれば。

投稿2017/03/30 03:53

編集2017/03/30 06:37
tkanda

総合スコア2425

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

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

ricy

2017/03/30 05:01

ありがとうございます!ご提示の方法ででました!勉強なりました。
guest

0

一時間前は取得できています(こちらに変換するではどのように変換したいのか伝わりません)

var date= new Date(); console.log(date.toString()); var onedate = new Date(date.setHours(date.getHours()-1)); console.log(onedate.toString());

console.log
Thu Mar 30 2017 12:59:18 GMT+0900
Thu Mar 30 2017 11:59:18 GMT+0900

投稿2017/03/30 04:02

date

総合スコア1820

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

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

0

何でdate.setHours(date.getHours()-1)の値を確認しましたか?
普通にご提示の方法で参照できてるとおもいますが

投稿2017/03/30 03:40

yambejp

総合スコア114769

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

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

ricy

2017/03/30 05:02

ご回答ありがとうございます。書いてあるとおりですが、これにconsole.logで囲って出た結果です。 date.setHours(date.getHours()-1); ->1490840822515
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問