Convert datetime into date in php

I know this is old, but, in running into a vendor that inconsistently uses 5 different date formats in their APIs [and test servers with a variety of PHP versions from the 5's through the latest 7's], I decided to write a universal converter that works with a myriad of PHP versions.

This converter will take virtually any input, including any standard datetime format [including with or without milliseconds] and any Epoch Time representation [including with or without milliseconds] and convert it to virtually any other format.

To call it:

$TheDateTimeIWant=convertAnyDateTome_toMyDateTime[[thedateIhave],[theformatIwant]];

Sending null for the format will make the function return the datetime in Epoch/Unix Time. Otherwise, send any format string that date[] supports, as well as with ".u" for milliseconds [I handle milliseconds as well, even though date[] returns zeros].

Here's the code:

        

Here's some sample calls - you will note it also handles any time zone data [though as noted above, any non GMT time is returned in your time zone].

        $utctime1="2018-10-30T06:10:11.2185007-07:00";
        $utctime2="2018-10-30T06:10:11.2185007";
        $utctime3="2018-10-30T06:10:11.2185007 PDT";
        $utctime4="2018-10-30T13:10:11.2185007Z";
        $utctime5="2018-10-30T13:10:11Z";
        $dttm="10/30/2018 09:10:11 AM EST";

        echo "
";
        echo "Epoch Time to a standard format
"; echo "
Epoch Tm: 1540905011 to STD DateTime ----RESULT: ".convertAnyDateTime_toMyDateTime["1540905011","Y-m-d H:i:s"].""; echo "
Epoch Tm: 1540905011 to UTC ----RESULT: ".convertAnyDateTime_toMyDateTime["1540905011","c"]; echo "
Epoch Tm: 1540905011.2185007 to UTC ----RESULT: ".convertAnyDateTime_toMyDateTime["1540905011.2185007","c"].""; echo "Returned as Epoch Time [the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time [UTC], minus leap seconds.]"; echo "
"; echo "
UTCTime1: ".$utctime1." ----RESULT: ".convertAnyDateTime_toMyDateTime[$utctime1,null]; echo "
UTCTime2: ".$utctime2." ----RESULT: ".convertAnyDateTime_toMyDateTime[$utctime2,null]; echo "
UTCTime3: ".$utctime3." ----RESULT: ".convertAnyDateTime_toMyDateTime[$utctime3,null]; echo "
UTCTime4: ".$utctime4." ----RESULT: ".convertAnyDateTime_toMyDateTime[$utctime4,null]; echo "
UTCTime5: ".$utctime5." ----RESULT: ".convertAnyDateTime_toMyDateTime[$utctime5,null]; echo "
NO MILIS: ".$dttm." ----RESULT: ".convertAnyDateTime_toMyDateTime[$dttm,null]; echo ""; echo ""; echo "Returned as whatever datetime format one desires"; echo "
UTCTime1: ".$utctime1." ----RESULT: ".convertAnyDateTime_toMyDateTime[$utctime1,"Y-m-d H:i:s"]." Y-m-d H:i:s"; echo "
UTCTime2: ".$utctime2." ----RESULT: ".convertAnyDateTime_toMyDateTime[$utctime2,"Y-m-d H:i:s.u"]." Y-m-d H:i:s.u"; echo "
UTCTime3: ".$utctime3." ----RESULT: ".convertAnyDateTime_toMyDateTime[$utctime3,"Y-m-d H:i:s.u"]." Y-m-d H:i:s.u"; echo "

Returned as ISO8601"; echo "
UTCTime3: ".$utctime3." ----RESULT: ".convertAnyDateTime_toMyDateTime[$utctime3,"c"]." ISO8601"; echo "

";

Here's the output:

Epoch Tm: 1540905011                        ----RESULT: 2018-10-30 09:10:11

Epoch Tm: 1540905011          to UTC        ----RESULT: 2018-10-30T09:10:11-04:00
Epoch Tm: 1540905011.2185007  to UTC        ----RESULT: 2018-10-30T09:10:11-04:00
Returned as Epoch Time [the number of seconds that have elapsed since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time [UTC], minus leap seconds.]

UTCTime1: 2018-10-30T06:10:11.2185007-07:00 ----RESULT: 1540905011.2185007
UTCTime2: 2018-10-30T06:10:11.2185007       ----RESULT: 1540894211.2185007
UTCTime3: 2018-10-30T06:10:11.2185007 PDT   ----RESULT: 1540905011.2185007
UTCTime4: 2018-10-30T13:10:11.2185007Z      ----RESULT: 1540905011.2185007
UTCTime5: 2018-10-30T13:10:11Z              ----RESULT: 1540905011
NO MILIS: 10/30/2018 09:10:11 AM EST        ----RESULT: 1540908611
Returned as whatever datetime format one desires
UTCTime1: 2018-10-30T06:10:11.2185007-07:00 ----RESULT: 2018-10-30 09:10:11              Y-m-d H:i:s
UTCTime2: 2018-10-30T06:10:11.2185007       ----RESULT: 2018-10-30 06:10:11.2185007      Y-m-d H:i:s.u
UTCTime3: 2018-10-30T06:10:11.2185007 PDT   ----RESULT: 2018-10-30 09:10:11.2185007      Y-m-d H:i:s.u
Returned as ISO8601
UTCTime3: 2018-10-30T06:10:11.2185007 PDT   ----RESULT: 2018-10-30T09:10:11-04:00        ISO8601

The only thing not in this version is the ability to select the time zone you want the returned datetime to be in. Originally, I wrote this to change any datetime to Epoch Time, so, I didn't need time zone support. It's trivial to add though.

How do I change date format from YYYY

For example - we have stored date in MM-DD-YYYY format in a variable, and we want to change it to DD-MM-YYYY format..

Chủ Đề