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

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

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

mBaaSとはモバイルアプリケーションでの利用に特化したBaaSです。スマートフォン向けのWebアプリケーションが必要とするサーバ側の様々な機能をインターネットを通じてサービスとして提供しています。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

Q&A

解決済

1回答

1289閲覧

firebase.firestore.FieldValue.serverTimestamp()で時間を保存し、取得したい

chiba_kun

総合スコア16

mBaaS

mBaaSとはモバイルアプリケーションでの利用に特化したBaaSです。スマートフォン向けのWebアプリケーションが必要とするサーバ側の様々な機能をインターネットを通じてサービスとして提供しています。

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

0グッド

0クリップ

投稿2019/09/03 08:53

前提・実現したいこと

firebaseのタイムスタンプを使い、時間の保存し、その時間を表示したいです。

経緯

①databaseにタイムスタンプを使い時間を保存

javascript

1time: firebase.firestore.FieldValue.serverTimestamp()

②databaseに保存された値が下記の画像

イメージ説明

③databaseに保存された値を表示

javascript

1console.log(doc.data().time);

④実行結果
イメージ説明

問題点

時間の表示を

Tue Sep 03 2019 04:41:30 GMT+0900 (日本標準時)のような形ではなく、2019年9月03日04時41分30秒のようにしたいです。

数字を切り抜き、月や秒といった文字列と連結をすればそのような表示はできるのですが、問題は9月の表示だけ、Septemberの省略形で文字列になっているところです。

月の部分だけ文字列だと、それぞれの月を表す英語の省略形に対応するように、その部分を数字に書き換えなければならないので、処理に手間がかかり、ちょっと面倒です。

また、databaseに保存されたtimeと、コンソールに表示されたtimeの表示が若干違います。これは一体どうしてなのでしょうか?

イメージ説明

イメージ説明

### 試してみたこと考えてみたこと

そもそも自分はタイムスタンプについてあまりよく知らなかったので調べてみました。下記はwikiのスクショです。

イメージ説明

databaseやコンソールに表示されていたのは、画像の左側UTCという方なんですね。

経過秒数の方の値を取得できれば、2019年9月03日04時41分30秒というような表記の処理が簡潔に書けるなと思いましたが、経過秒数の取得の仕方が分かりません。

console.log(doc.data().time);

と書くと、Tue Sep 03 2019 04:41:30 GMT+0900と出てきてしまうので

###質問まとめ

①UTCではなく純粋な経過秒数を取得するためにはどうすればよいのでしょうか?

②databaseとconsole.logで同じtimeなのにどうして表記が若干違うのでしょうか?

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

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

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

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

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

guest

回答1

0

自己解決

firebaseのタイムスタンプもgetTime()でミリ秒を取得できるんですね。下調べが足りず質問を投稿してしましました。反省。。。

投稿2019/09/04 12:04

chiba_kun

総合スコア16

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問