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

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

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

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Node.js

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

Q&A

解決済

1回答

2053閲覧

node 24時間を超える時間数の扱いについて

uroncha

総合スコア54

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Node.js

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

0グッド

0クリップ

投稿2017/12/22 08:01

node + express の構成でWEBアプリを作成しています。

24時間以上を超えた時間数(例えば28:00:00)を扱う場合に、便利なモジュールがあれば教えて頂きたいです。
moment.jsのような感じのものはありますでしょうか?

PostgreSQLのinterval型で時間数を管理していて、下記のようなオブジェクト型で取り出せます。
{hours:28,minutes:00,seconds:00}

moment.jsのように簡単に代入出来て、formatを指定して出力したり、
贅沢を言うと加算、減算など出来ると嬉しいです。

アドバイスをよろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ん? Node.js 上で Moment.js が使いたいという質問に思えますが合ってますか?

もしそうなら Moment.js は普通に npm でインストールしてNode.js上で利用できます。

Bash

1$ npm -v 25.3.0 3 4# npm のバージョンが5以上なら--saveオプション不要 5$ npm install moment 6 7# npm のバージョンが4以下だった場合は--saveオプション必須 8$ npm install moment --save

JavaScript

1const moment = require('moment'); 2 3console.log(moment()); 4// moment("2017-12-22T17:18:08.597")

【おまけ】

Moment.jsはとても便利ですが、各種操作が破壊的メソッドだらけでなんとも使いづらい…
そういう要望があり、Moment.jsのスピンオフとしてLuxonというライブラリが誕生しています。

Moment.jsのトップページの上メニューから簡単にアクセス出来るので良かったらどうぞ。
ただ、LuxonはMoment.jsとは使い方がちょっとずつ違うんで似たようなことやりたい時は覚え直しになっちゃうんですけどね…

Bash

1$ npm install luxon

JavaScript

1const moment = require('moment'); 2const m1 = moment(); 3const m2 = m1.add(1, 'minutes'); 4console.log(m1, m2); 5// moment("2017-12-22T17:27:23.091") 6// moment("2017-12-22T17:27:23.091") 同じ時刻になっちゃった… 7 8const {DateTime} = require('luxon'); 9const l1 = DateTime.local(); 10const l2 = l1.plus({minutes: 10}); 11console.log(l1, l2); 12// DateTime { 13// ts: 2017-12-22T17:23:56.650+09:00, 14// zone: Asia/Tokyo, 15// locale: und } 16// DateTime { 17// ts: 2017-12-22T17:33:56.650+09:00, ちゃんと違う時刻 18// zone: Asia/Tokyo, 19// locale: und }

投稿2017/12/22 08:28

miyabi-sun

総合スコア21158

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

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

uroncha

2017/12/22 23:17

miyabi-sun回答ありがとうございます。 しかし、moment.jsでは、24時間を越えた時間数を扱えず困っているというご相談です。 console.log(moment("25:00:00", "H:mm:ss")); ->moment.invalid(/* 25:00:00 */) 24時間を越えた時間数、また1ヶ月の合計時間数(例えば155:00:00)など、 扱える便利なモジュールをご存知なら教えていただきたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問