derick Tue Dec 16 17:52:49 2003 EDT Added files: /php-src/ext/standard/tests/time date.phpt
Modified files: /php-src/ext/standard datetime.c /php-src NEWS Log: - Added 'c' modifier to date() which returns the date in ISO 8601 format. Index: php-src/ext/standard/datetime.c diff -u php-src/ext/standard/datetime.c:1.111 php-src/ext/standard/datetime.c:1.112 --- php-src/ext/standard/datetime.c:1.111 Sun Sep 14 20:07:51 2003 +++ php-src/ext/standard/datetime.c Tue Dec 16 17:52:47 2003 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: datetime.c,v 1.111 2003/09/15 00:07:51 iliaa Exp $ */ +/* $Id: datetime.c,v 1.112 2003/12/16 22:52:47 derick Exp $ */ #include "php.h" #include "zend_operators.h" @@ -331,6 +331,9 @@ case 'r': /* rfc822 format */ size += 31; break; + case 'c': /* iso8601 date (Dublin Core Date) */ + size += 25; + break; case 'U': /* seconds since the epoch */ size += 10; break; @@ -557,8 +560,8 @@ strcat(Z_STRVAL_P(return_value), tmp_buff); break; case 'r': -#if HAVE_TM_GMTOFF - sprintf(tmp_buff, "%3s, %2d %3s %04d %02d:%02d:%02d %c%02d%02d", +#if HAVE_TM_GMTOFF + sprintf(tmp_buff, "%3s, %2d %3s %04d %02d:%02d:%02d %c%02d%02d", day_short_names[ta->tm_wday], ta->tm_mday, mon_short_names[ta->tm_mon], @@ -571,7 +574,7 @@ abs( (ta->tm_gmtoff % 3600) / 60 ) ); #else - sprintf(tmp_buff, "%3s, %2d %3s %04d %02d:%02d:%02d %c%02d%02d", + sprintf(tmp_buff, "%3s, %2d %3s %04d %02d:%02d:%02d %c%02d%02d", day_short_names[ta->tm_wday], ta->tm_mday, mon_short_names[ta->tm_mon], @@ -586,6 +589,34 @@ #endif strcat(Z_STRVAL_P(return_value), tmp_buff); break; + case 'c': +#if HAVE_TM_GMTOFF + sprintf(tmp_buff, "%04d-%02d-%02dT%02d:%02d:%02d%c%02d:%02d", + ta->tm_year + YEAR_BASE, + ta->tm_mon + 1, + ta->tm_mday, + ta->tm_hour, + ta->tm_min, + ta->tm_sec, + (ta->tm_gmtoff < 0) ? '-' : '+', + abs(ta->tm_gmtoff / 3600), + abs( (ta->tm_gmtoff % 3600) / 60 ) + ); +#else + sprintf(tmp_buff, "%04d-%02d-%02dT%02d:%02d:%02d%c%02d:%02d", + ta->tm_year + YEAR_BASE, + ta->tm_mon + 1, + ta->tm_mday, + ta->tm_hour, + ta->tm_min, + ta->tm_sec, + ((ta->tm_isdst ? tzone - 3600 : tzone) > 0) ? '-' : '+', + abs((ta->tm_isdst ? tzone - 3600 : tzone) / 3600), + abs( ((ta->tm_isdst ? tzone - 3600 : tzone) % 3600) / 60 ) + ); +#endif + strcat(Z_STRVAL_P(return_value), tmp_buff); + break; case 'W': /* ISO-8601 week number of year, weeks starting on Monday */ wd = ta->tm_wday == 0 ? 6 : ta->tm_wday - 1; /* weekday */ yd = ta->tm_yday + 1; /* days since January 1st */ Index: php-src/NEWS diff -u php-src/NEWS:1.1539 php-src/NEWS:1.1540 --- php-src/NEWS:1.1539 Tue Dec 16 17:20:27 2003 +++ php-src/NEWS Tue Dec 16 17:52:48 2003 @@ -8,6 +8,8 @@ . ext/db (Jani, Derick) . ext/mcal (Jani, Derick) . ext/qtdom (Jani, Derick) +- Added 'c' modifier to date() which returns the date in the ISO 8601 format. + (Derick, Manuzhai) - Added MacRoman encoding support to htmlentities(). (Derick, Marcus Bointon) - Added possibility to call PHP functions as XSLT-functions. (Christian) - Added possibility to prevent PHP from registering variables when input filter Index: php-src/ext/standard/tests/time/date.phpt +++ php-src/ext/standard/tests/time/date.phpt --TEST-- date() function --FILE-- <?php $tmp = "cr"; putenv ("TZ=GMT0"); for($a = 0;$a < strlen($tmp); $a++){ echo $tmp{$a}, ': ', date($tmp{$a}, 1043324459)."\n"; } putenv ("TZ=MET"); for($a = 0;$a < strlen($tmp); $a++){ echo $tmp{$a}, ': ', date($tmp{$a}, 1043324459)."\n"; } ?> --EXPECT-- c: 2003-01-23T12:20:59+00:00 r: Thu, 23 Jan 2003 12:20:59 +0000 c: 2003-01-23T13:20:59+01:00 r: Thu, 23 Jan 2003 13:20:59 +0100 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php