mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Fixed #71062 pg_convert() doesn't accept ISO 8601 for datatype timestamp
This commit is contained in:
parent
163d26d584
commit
d263616525
@ -6183,7 +6183,7 @@ PHP_PGSQL_API int php_pgsql_convert(PGconn *pg_link, const char *table_name, con
|
||||
ZVAL_STRINGL(&new_val, "NOW()", sizeof("NOW()")-1);
|
||||
} else {
|
||||
/* better regex? */
|
||||
if (php_pgsql_convert_match(Z_STRVAL_P(val), Z_STRLEN_P(val), "^([0-9]{4}[/-][0-9]{1,2}[/-][0-9]{1,2})([ \\t]+(([0-9]{1,2}:[0-9]{1,2}){1}(:[0-9]{1,2}){0,1}(\\.[0-9]+){0,1}([ \\t]*([+-][0-9]{1,4}(:[0-9]{1,2}){0,1}|[-a-zA-Z_/+]{1,50})){0,1})){0,1}$", 1) == FAILURE) {
|
||||
if (php_pgsql_convert_match(Z_STRVAL_P(val), Z_STRLEN_P(val), "^([0-9]{4}[/-][0-9]{1,2}[/-][0-9]{1,2})(([ \\t]+|T)(([0-9]{1,2}:[0-9]{1,2}){1}(:[0-9]{1,2}){0,1}(\\.[0-9]+){0,1}([ \\t]*([+-][0-9]{1,4}(:[0-9]{1,2}){0,1}|[-a-zA-Z_/+]{1,50})){0,1})){0,1}$", 1) == FAILURE) {
|
||||
err = 1;
|
||||
} else {
|
||||
ZVAL_STRING(&new_val, Z_STRVAL_P(val));
|
||||
|
39
ext/pgsql/tests/bug71062.phpt
Normal file
39
ext/pgsql/tests/bug71062.phpt
Normal file
@ -0,0 +1,39 @@
|
||||
--TEST--
|
||||
Bug #71062 pg_convert() doesn't accept ISO 8601 for datatype timestamp
|
||||
--SKIPIF--
|
||||
<?php include("skipif.inc"); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
include('config.inc');
|
||||
|
||||
$db = pg_connect($conn_str);
|
||||
|
||||
$table = "public.test_table_bug71062_bug71062";
|
||||
|
||||
pg_query($db, "CREATE TABLE $table ( test_field TIMESTAMPTZ )");
|
||||
|
||||
// ISO 8601 (with 'T' between date and time)
|
||||
$date_string_php_iso8601 = date_create('8 Dec 2015 5:38')->format(DateTime::ISO8601);
|
||||
|
||||
// ISO 8601 with the 'T' removed
|
||||
$modified_format = 'Y-m-d H:i:sO';
|
||||
$date_string_modified_iso8601 = date_create('8 Dec 2015 5:38')->format($modified_format);
|
||||
|
||||
printf("trying format %s \n", DateTime::ISO8601);
|
||||
pg_convert($db, $table, ['test_field' => $date_string_php_iso8601]);
|
||||
|
||||
printf("trying format %s \n", $modified_format);
|
||||
pg_convert($db, $table, ['test_field' => $date_string_modified_iso8601]);
|
||||
|
||||
print "done\n";
|
||||
|
||||
pg_query($db, "DROP TABLE $table");
|
||||
|
||||
?>
|
||||
==OK==
|
||||
--EXPECT--
|
||||
trying format Y-m-d\TH:i:sO
|
||||
trying format Y-m-d H:i:sO
|
||||
done
|
||||
==OK==
|
Loading…
Reference in New Issue
Block a user