|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
  [2017-07-01 06:02 UTC] hksingla92 at gmail dot com
 Description: ------------ --- From manual page: http://www.php.net/datetime.createfromformat --- While creating a datetime object using following function DateTime::createFromFormat('G:iA', '15:00PM'); produced this object DateTime Object ( [date] => 2017-07-02 03:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) Its mixing "G/H" and "A" to produce wrong results as it adds extra hours resulting in wrong date and time. May be we should ignore "A" in case if "G/H" is used instead of "g/h" Test script: --------------- I think this array has all possible scenarios: $test = [ DateTime::createFromFormat('G:i', '3:00'); DateTime::createFromFormat('G:i', '15:00'); DateTime::createFromFormat('G:iA', '3:00AM'); DateTime::createFromFormat('G:iA', '15:00AM'); DateTime::createFromFormat('G:iA', '15:00PM'); ]; print_r($test); Expected result: ---------------- I was expecting to see object at last index with correct time like following DateTime Object ( [date] => 2017-07-01 15:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) Actual result: -------------- It produced following object: DateTime Object ( [date] => 2017-07-02 03:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             | |||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 07:00:01 2025 UTC | 
I can repro on 7.2.2 on Windows (3v4l is PHP on Linux, I assume). The failing section of the output: [4] => DateTime Object ( [date] => 2018-03-14 03:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) Should be 15:00 not 3:00. A corrected repro script (for syntax only): <?php $test = array( DateTime::createFromFormat('G:i', '3:00'), DateTime::createFromFormat('G:i', '15:00'), DateTime::createFromFormat('G:iA', '3:00AM'), DateTime::createFromFormat('G:iA', '15:00AM'), DateTime::createFromFormat('G:iA', '15:00PM') ); print_r($test); ?>