cakephp3の日時のYMDフォーマットについて
2021年05月18日
cakephp3で、データベースから取得した日時などのオブジェクトのデータを画面に出力する場合に、YMD形式のフォーマットに変換するケースがありますが、yは大文字か小文字か、など微妙なところでよく分からなかったのでメモです。
例えば、以下のように使います。
$now = Time::parse('2014-10-31');
// '2014-10-31 00:00:00' と出力します。
$now->i18nFormat('yyyy-MM-dd HH:mm:ss');
cakephpで使われているYMDフォーマットについては、以下のページに詳しく解説がありました。
Formatting Dates and Times | ICU Documentation
上記のページから抜粋します。
Symbol | Meaning | Pattern | Example Output |
---|---|---|---|
G | era designator | G , GG , or GGG GGGG GGGGG | AD Anno Domini A |
y | year | yy y or yyyy | 96 1996 |
Y | year of “Week of Year” | Y | 1997 |
u | extended year | u | 4601 |
U | cyclic year name, as in Chinese lunar calendar | U | 甲子 |
r | related Gregorian year | r | 1996 |
Q | quarter | Q QQ QQQ QQQQ QQQQQ | 2 02 Q2 2nd quarter 2 |
q | stand-alone quarter | q qq qqq qqqq qqqqq | 2 02 Q2 2nd quarter 2 |
M | month in year | M MM MMM MMMM MMMMM | 9 09 Sep September S |
L | stand-alone month in year | L LL LLL LLLL LLLLL | 9 09 Sep September S |
w | week of year | w ww | 27 27 |
W | week of month | W | 2 |
d | day in month | d dd | 2 02 |
D | day of year | D | 189 |
F | day of week in month | F | 2 (2nd Wed in July) |
g | modified julian day | g | 2451334 |
E | day of week | E, EE , or EEE EEEE EEEEE EEEEEE | Tue Tuesday T Tu |
e | local day of week example: if Monday is 1st day, Tuesday is 2nd ) | e or ee eee eeee eeeee eeeeee | 2 Tue Tuesday T Tu |
c | stand-alone local day of week | c or cc ccc cccc ccccc cccccc | 2 Tue Tuesday T Tu |
a | am/pm marker | a | pm |
h | hour in am/pm (1~12) | h hh | 7 07 |
H | hour in day (0~23) | H HH | 0 00 |
k | hour in day (1~24) | k kk | 24 24 |
K | hour in am/pm (0~11) | K KK | 0 00 |
m | minute in hour | m mm | 4 04 |
s | second in minute | s ss | 5 05 |
S | fractional second – truncates (like other time fields) to the count of letters when formatting. Appends zeros if more than 3 letters specified. Truncates at three significant digits when parsing. | S SS SSS SSSS | 2 23 235 2350 |
A | milliseconds in day | A | 61201235 |
z | Time Zone: specific non-location | z , zz , or zzz zzzz | PDT Pacific Daylight Time |
Z | Time Zone: ISO8601 basic hms? / RFC 822 Time Zone: long localized GMT (=OOOO) TIme Zone: ISO8601 extended hms? (=XXXXX) | Z , ZZ , or ZZZ ZZZZ ZZZZZ | -0800 GMT-08:00 -08:00, -07:52:58, Z |
O | Time Zone: short localized GMT Time Zone: long localized GMT (=ZZZZ) | O OOOO | GMT-8 GMT-08:00 |
v | Time Zone: generic non-location (falls back first to VVVV) | v vvvv | PT Pacific Time or Los Angeles Time |
V | Time Zone: short time zone ID Time Zone: long time zone ID Time Zone: time zone exemplar city Time Zone: generic location (falls back to OOOO) | V VV VVV VVVV | uslax America/Los_Angeles Los Angeles Los Angeles Time |
X | Time Zone: ISO8601 basic hm?, with Z for 0 Time Zone: ISO8601 basic hm, with Z Time Zone: ISO8601 extended hm, with Z Time Zone: ISO8601 basic hms?, with Z Time Zone: ISO8601 extended hms?, with Z | X XX XXX XXXX XXXXX | -08, +0530, Z -0800, Z -08:00, Z -0800, -075258, Z -08:00, -07:52:58, Z |
x | Time Zone: ISO8601 basic hm?, without Z for 0 Time Zone: ISO8601 basic hm, without Z Time Zone: ISO8601 extended hm, without Z Time Zone: ISO8601 basic hms?, without Z Time Zone: ISO8601 extended hms?, without Z | x xx xxx xxxx xxxxx | -08, +0530 -0800 -08:00 -0800, -075258 -08:00, -07:52:58 |
' | escape for text | ' | (nothing) |
' ' | two single quotes produce one | ' ' | ’ |