Javascriptで日付を英語表記に変えるシンプルなコード。
例
2018年5月19日
を
May 19, 2018
にしたい。
日と年は順番を入れ替えるだけだが、月は英語表記の配列を作って数字⇨英語に置換する。
以下詳細
function get_english_date() {
const month_english_list = ['Jan.','Feb.','Mar.','Apr.','May','June','July','Aug.','Sept.','Oct.','Nov.','Dec.']
//月の英語表記を配列に定義。省略形は不規則で、①Mayは3文字だからカンマはいらない、②June, Julyは4文字のまま、③9月は4文字でSept. 初めて知った。
var date = new Date()
//Dateオブジェクトで日付を取得(引数を持たせなければ現在時刻を取得する)
var month = date.getMonth()
//dateから月を取り出してmonthに代入
var month_english = month_english_list[month]
//month_english-listのmonth番目の要素をmonth_englishに代入。 ※getMonth()は0-11までの整数が返る(1月は0になる)ので、[month-1]とする必要はない
var day = date.getDate()
//一番最後の式を見やすくするため、dateから日を取り出してdayに代入
var year = date.getFullYear()
//同様にdateから年を取り出してyearに代入
var date_english = month_english + " " + day + ", " + year
//あとは順番通り並べるだけ。 => May 19, 2018
}
余談 : 英語では”年月日”も”日”もDATEなのでややこしい。解決案はないだろうか。