オレオレ定数 - 日付フォーマットの追加
まあ、defineなりでPHPスクリプトで定義すれば済む話なんですが。。。折角なので晒しておきます。以下、「YmdHis」を「DATE_NUM14」とする定義を追加する場合です。
$ pwd /usr/local/src/php-5.2.5/ $ $ diff -c ext/date/php_date.c.org ext/date/php_date.c *** ext/date/php_date.c.org 2007-07-13 03:59:05.000000000 +0900 --- ext/date/php_date.c 2008-01-04 23:09:51.000000000 +0900 *************** *** 455,460 **** --- 455,462 ---- #define DATE_FORMAT_ISO8601 "Y-m-d\\TH:i:sO" + #define DATE_FORMAT_NUM14 "YmdHis" + #define DATE_TZ_ERRMSG \ "It is not safe to rely on the system's timezone settings. Please use " \ "the date.timezone setting, the TZ environment variable or the " \ *************** *** 494,499 **** --- 496,502 ---- REGISTER_STRING_CONSTANT("DATE_RFC1123", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("DATE_RFC2822", DATE_FORMAT_RFC2822, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("DATE_RFC3339", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT); + REGISTER_STRING_CONSTANT("DATE_NUM14", DATE_FORMAT_NUM14, CONST_CS | CONST_PERSISTENT); /* * RSS 2.0 Specification: http://blogs.law.harvard.edu/tech/rss * "All date-times in RSS conform to the Date and Time Specification of RFC 822, *************** *** 1480,1485 **** --- 1483,1489 ---- REGISTER_DATE_CLASS_CONST_STRING("RFC3339", DATE_FORMAT_RFC3339); REGISTER_DATE_CLASS_CONST_STRING("RSS", DATE_FORMAT_RFC1123); REGISTER_DATE_CLASS_CONST_STRING("W3C", DATE_FORMAT_RFC3339); + REGISTER_DATE_CLASS_CONST_STRING("NUM14", DATE_FORMAT_NUM14); INIT_CLASS_ENTRY(ce_timezone, "DateTimeZone", date_funcs_timezone); $ $ $ ./sapi/cli/php -r "var_dump(date(DATE_NUM14));" string(14) "20080104231147" $
php_date.cを見て、そういえば
<?php $dt = new DateTime();
ってできたんだっけなぁ、と思い出しましたw