Doc #65747 [Com]: DateTime __construct error

From: Date: Mon, 30 Sep 2013 03:09:56 +0000
Subject: Doc #65747 [Com]: DateTime __construct error
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-10331@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=65747&edit=1 ID: 65747 Comment by: gabri dot ns at gmail dot com Reported by: mwiseman at dogandtuba dot com Summary: DateTime __construct error Status: Open Type: Documentation Problem Package: Date/time related Operating System: Windows PHP Version: Irrelevant Block user comment: N Private report: N New Comment: IMO, the one that should be fixed is strtotime documentation, since this behaviour came from thus function. As doumentation say, the first argument should be time string, that -i think- will be parsed by strtotime function. Test script: --------------- echo date('Y-m-d H:i:s',strtotime('now'))."\n"; echo date('Y-m-d H:i:s',strtotime('a'))."\n"; Actual result: -------------- 2013-09-30 10:07:18 2013-09-30 16:07:18 Previous Comments: ------------------------------------------------------------------------ [2013-09-29 22:43:05] requinix@php.net Expected but undocumented behavior. Single characters correspond to military timezones. See http://en.wikipedia.org/wiki/List_of_military_time_zones foreach (range("a", "z") as $l) { if ($l == "j") continue; printf("%s = %s\n", $l, (new DateTime($l))->format("r")); } So the list of timezones documentation should be updated to mention these. ------------------------------------------------------------------------ [2013-09-29 15:56:59] vascowhite at gmail dot com Related To: Bug #65787 ------------------------------------------------------------------------ [2013-09-23 23:44:15] mwiseman at dogandtuba dot com Description: ------------ Constructing a DateTime object with a string argument of 1 character creates a DateTime object set to now, instead of throwing an exception. If the string contains two characters (e.g. DateTime('aa')) an exception is thrown. Test script: --------------- <?php date_default_timezone_set('America/Los_Angeles'); $d = new DateTime('x'); echo $d->format('y-m-d'); ?> Expected result: ---------------- Throw an exception Actual result: -------------- Valid DateTime object set to now. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=65747&edit=1

« previous php.doc.bugs (#10331) next »