カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

JavaScriptでの日付フォーマット

MySQL等から返されるハイフン区切りの日付をJavaScriptでスラッシュ区切りにしたいことがあったので、その方法をご紹介します。

まず単純な方法であれば文字列分割&結合でやることも可能です。

console.log('2024-08-29'.split('-').join('/'));
// 2024/08/29

別な方法としてDateオブジェクトを使って実装してみたいと思います。
toLocaleDateStringを使いロケールに日本を指定して実行してみます。

let date = new Date('2024-08-29').toLocaleDateString('ja-JP');
console.log(date);
// 2024/8/29

スラッシュ区切りにはなりましたが、月が1桁になっています。
月を2桁で表示したい場合はtoLocaleDateStringメソッドの第2引数にオプションを指定します。

let date = new Date('2024-08-29').toLocaleDateString('ja-JP', { year: "numeric", month: "2-digit", day: "2-digit" });
console.log(date);
// 2024/08/29

これでyyyy/mm/ddの形式になりました。

参考URL:
Date.prototype.toLocaleDateString() – JavaScript | MDN

112 views

MySQLの日付関数 22選

MySQLで使用できる日付の加算や減算等の関数をご紹介します。

現在の日付を返す CURDATE()

現在の日付を返します。
CURRENT_DATE(), CURRENT_DATEはCURDATE()のシノニムです。

mysql> SELECT CURDATE();
        -> '2008-06-13'
mysql> SELECT CURDATE() + 0;
        -> 20080613

日付部分を抽出する DATE()

書式:DATE(expr)
日付exprの日付部分を抽出します。

mysql> SELECT DATE('2003-12-31 01:02:03');
        -> '2003-12-31'

日付の加算 DATE_ADD()

書式:DATE_ADD(date, INTERVAL expr unit)
日付値に時間値 (間隔) を加算します。
ADDDATE()DATE_ADD()のシノニムです。

unit…YEAR,MONTH,DAY等

mysql> SELECT DATE_ADD('2008-01-02', INTERVAL 31 DAY);
        -> '2008-02-02'
mysql> SELECT ADDDATE('2008-01-02', INTERVAL 31 DAY);
        -> '2008-02-02'

日付を指定された書式に設定 DATE_FORMAT()

書式:DATE_FORMAT(date, format)
日付を指定された書式に設定します。

mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');
        -> 'Sunday October 2009'
mysql> SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> SELECT DATE_FORMAT('1900-10-04 22:23:00', '%D %y %a %d %m %b %j');
        -> '4th 00 Thu 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H %k %I %r %T %S %w');
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
        -> '1998 52'
mysql> SELECT DATE_FORMAT('2006-06-00', '%d');
        -> '00'

日付の減算 DATE_SUB()

書式:DATE_SUB(date, INTERVAL expr unit)
日付から時間値 (間隔) を引きます。
SUBDATE()DATE_SUB()のシノニムです。

mysql> SELECT DATE_SUB('2005-01-01 00:00:00', INTERVAL '1 1:1:1' DAY_SECOND);
        -> '2004-12-30 22:58:59'
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
        -> '1997-12-02'

続きを読む…»

910 views

日付の差を求める [PHP]

2つの日付の差を求めるサンプルです。
DateTimeクラスを使用します。

まずは2つの日付のオブジェクトを生成します。

$datetime1 = new DateTime('1981-04-22');
$datetime2 = new DateTime('1981-01-01');

DateTime::diffメソッドで日付の差を求めます。
返り値にはDateIntervalオブジェクトが返ります。

$interval = $datetime1->diff($datetime2);

DateIntervalオブジェクトのプロパティ

y
m
d
h 時間
i
s
invert 差が負の場合は1、そうでない場合は0
days 日数

例)2つの日付の差となる日数を出力する

print $interval->days;

また、フォーマットした文字列を取得したい場合はDateInterval::formatメソッドを使用します。
続きを読む…»

3,012 views