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