#44399 [Bgs]: date (PHP 5) does not support O, but it's missing in the documentation
| From: | robertbienert at gmx dot net | Date: | Wed, 12 Mar 2008 15:51:58 +0000 |
| Subject: | #44399 [Bgs]: date (PHP 5) does not support O, but it's missing in the documentation | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-599@lists.php.net to get a copy of this message | ||
ID: 44399
User updated by: robertbienert at gmx dot net
Reported By: robertbienert at gmx dot net
Status: Bogus
Bug Type: Documentation problem
Operating System: all
PHP Version: Irrelevant
New Comment:
So you don't think that it may be helpfull to have a notice on
<http://www.php.net/manual/de/ref.datetime.php>,
too? When I catch this
error, the first thing is having a look at the date() manual hm,
nothing, than the Date/Time functions hm, nothing and then? I guess
that most user will throw E_STRICT away instead of further investigation
of the errors reason.
BTW: The (good!) object-orientated date/time interface could be
mentioned more clearly in the manual, currently it is hidden by
functions with very long names.
Previous Comments:
------------------------------------------------------------------------
[2008-03-12 08:34:39] tularis@php.net
This is in general related to all date/time functionality in PHP and is
noted on the page linked by Gwynne. Next time, please read the responses
people give you before asking for explenations.
------------------------------------------------------------------------
[2008-03-11 12:17:48] robertbienert at gmx dot net
So this is in general date() related or am I wrong? Well, why does my
hack still work (obtaining a guessed timezone) and especially: Where is
this documentated?
------------------------------------------------------------------------
[2008-03-11 11:52:41] gwynne@php.net
This does not suggest that 'O' is unsupported. The error message you're
seeing was introduced in PHP 5.1, and indicates that PHP had to guess
your current timezone. This warning will appear regardless of the date
string you try to use. The 'O' character is in fact fully supported by
date() through all current versions of PHP. See
<http://www.php.net/manual/en/function.date-default-timezone-set.php>
for more information.
------------------------------------------------------------------------
[2008-03-11 11:25:11] robertbienert at gmx dot net
OK, my fault, the error is called E_STRICT (int value 2048). And here
follows a snippet from my code that emitted and caught the "error":
<?php
// custom error handler
function error($no, $msg, $file, $line) {
$msg = str_replace(array("\t", "\r\n", "\n", "\r"),
' ',
$msg);
echo 'Error (', $no, '): ', $msg, ' in ', $file, ' @line
',
$line, "\n";
exit;
}
set_error_handler('error');
echo 'PHP version: ', PHP_VERSION, "\n"; // is 5.2.0-8+etch10 for me
// now calling date to get _only_ the timezone offset
$offset = date('O');
// this line is never reached (because of the exit, but it is a usual
way to exit on errors):
echo 'current timezone offset: ', $offset, "\n";
?>
The (plain) error message from PHP 5 follows:
date(): It is not safe to rely on the system's timezone settings.
Please use the date.timezone setting, the TZ environment variable or the
date_default_timezone_set() function. In case you used any of those
methods and you are still getting this warning, you most likely
misspelled the timezone identifier. We selected 'Europe/Berlin' for
'CET/1.0/no DST' instead
And it is E_STRICT as my error handler reports (got it in the $no
variable). Hope this helps reproducing things.
------------------------------------------------------------------------
[2008-03-11 04:51:17] bjori@php.net
Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves.
A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external
resources such as databases, etc. If the script requires a
database to demonstrate the issue, please make sure it creates
all necessary tables, stored procedures etc.
Please avoid embedding huge scripts into the report.
There is no such errorlevel in PHP.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/44399
--
Edit this bug report at http://bugs.php.net/?id=44399&edit=1