1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dayjsを使って時間表示を簡単にしよう!

Last updated at Posted at 2024-05-12

1. はじめに

自分は10月よりAPPRENTICE SHIP(内定直結型エンジニア学習プログラム)のカリキュラムに2期生として参加しています。

この記事はオリジナルアプリ開発の備忘録として書いています。
間違いがありましたらご指摘いただけると幸いです

2. 今回の内容

今回は、オリジナルアプリを開発する際に使用したDay.jsについて紹介します。
このライブラリを採用するまでは、JavaScriptの標準機能を使って日本時間と世界標準時(UTC)の時間差を計算していましたが、Day.jsを使うことで、その煩わしさから解放されました。
とても効率的に時間周りのことが実装できたので、共有したいと思います。

3. まずタイムゾーンとは?

タイムゾーンとは、地球を24の時間帯に分け、それぞれの地域で標準時を定めるシステムのことです。タイムゾーンを使用することで、地域ごとに異なる時間を一貫して管理することが可能になります。

UTC (協定世界時)

  • UTC(Universal Time Coordinated)は、グリニッジ標準時(GMT)から派生した世界標準時です。
  • UTCは、国際的な時間調整の基準として用いられ、原子時計に基づいています。

JST (日本標準時)

  • JST(Japan Standard Time)は、UTCに9時間を加えた日本の標準時です。
    日本国内では、この時間帯を基準としてすべての公式な時間が設定されます。

4. 簡単に変換してくれるDay.jsを使おう

Day.jsは、日付と時刻を操作するためのJavaScriptライブラリです。特にタイムゾーンの変換に便利な機能を備えています。

使わない場合のコード

JavaScriptのDateオブジェクトを使ってUTCとJSTを手動で変換する例:

// 現在のUTC日時を取得
const now = new Date();
const utc = now.toISOString();

// JSTへ手動で変換(UTC+9)
const jstDate = new Date(now.getTime() + (9 * 60 * 60 * 1000));
const jst = jstDate.toISOString();

使う場合のコード

Day.jsを使って、簡単にUTCとJSTを変換する方法:

import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';

dayjs.extend(utc);
dayjs.extend(timezone);

// UTCの現在時刻を取得
const now = dayjs().utc();

// JSTへ簡単に変換
const jst = now.tz('Asia/Tokyo');

インポートなどで行数は増えてしまいますが、計算部分が省けたりと簡素にかけるのが分かると思います。

5. インストールとインポート

インストール

Day.jsをプロジェクトに追加するには、npmまたはyarnを使用します:

npm install dayjs
# または
yarn add dayjs

インポート

Day.jsと必要なプラグインをプロジェクトにインポートします:

import dayjs from 'dayjs'; 
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';

dayjs.extend(utc);
dayjs.extend(timezone);

6. 書き方

  • Day.jsを使った日付と時刻の操作方法の基本:
// 現在の日付と時刻
const now = dayjs();

// 特定のタイムゾーンでの日時
const timeInTokyo = now.tz('Asia/Tokyo');

// formatで形を指定
const formatTimeInTokyo = timeInTokyo.format('YYYY/MM/DD HH:mm');
console.log(formatTimeInTokyo); // 出力例: "2023/05/09 15:00"

formatメソッドの使用時の注意点

formatメソッドは、日時を指定した形式に整形するために使用します。ここで使用する形式指定子には次のような意味があります:

  • YYYY: 西暦年を4桁で表示します(例: 2023)
  • MM: 月を2桁で表示します(例: 05)。Mを使用すると、先行する0がない形式で表示されます(例: 5)
  • DD: 日を2桁で表示します(例: 09)。Dを使用すると、先行する0がない形式で表示されます(例: 9)
  • HH: 24時間表記での時間を2桁で表示します(例: 15)
  • mm: 分を2桁で表示します(例: 00)

その他の形式指定子

  • ss: 秒を2桁で表示します(例: 00)
  • a or A: AM/PM表記で午前または午後を表示します(例: AM, PM)

7. まとめ

今回はDayjsについて紹介させて頂きました。
フロントエンドで時間を表示するにはとても便利なものですね。
使い方としてはフォーマット以外にも、アプリ自体の国際化などにも活躍するそうです。
ぜひ、アプリ開発に活用してみてください!

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?