How to print "at" inside php date function? - php

i tried using date("F j, Y \a\t h:i a", strtotime($date));
but this produces May 20, 2013 a 04:37 pm
i also tried date("F j, Y \at\ h:i a", strtotime($date)); and
date("F j, Y \a\t\ h:i a", strtotime($date));
and it became May 20, 2013 a31 04:37 pm
what i want to produce is this May 20, 2013 at 04:37 pm
Thanks!

With double quotes \t will be interpreted as a tab character. Using single quotes (or double slashes) takes care of the issue:
echo date('F j, Y \a\t h:i a', strtotime('2013-05-20 23:59:59'));
// output: May 20, 2013 at 11:59 pm

Related

PHP convert date to yyyy/MM/dd HH:mm

I am receiving a date from Apple as Mar 5, 2020 at 9:18 AM. I believe this is M j, Y at G:i A but their string has an added at.
I tried to do this..
$origDate = "Mar 5, 2020 at 9:18 AM"
$date = DateTime::createFromFormat('M j, Y at G:i A', $origDate);
echo $date->format('yyyy/MM/dd HH:mm');
But I get the following error.
Uncaught Error: Call to a member function format() on boolean
How can I fix this?
All Date format identifiers are single characters (Y), not multiple (YYYY). Also, actual strings (at) will need to be escaped. You would need to create the DateTime object like this:
$origDate = "Mar 5, 2020 at 9:18 AM";
$date = DateTime::createFromFormat('M d, Y \a\t g:i A', $origDate);
echo $date->format('Y/m/d H:i');
As I mentioned in my comment, you can see all of the format identifiers at https://www.php.net/manual/en/datetime.createfromformat.php

Format php datetime as "Wednesday, April 16, 2014 at 2:24 PM"

I have this this datetime stored in db:
2014-04-16 14:24:24
I'd like to format it to:
Wednesday, April 16, 2014 at 2:24 PM
with this script:
date("l, F d, Y \a\t g:i A", strtotime($list['publish_time']))
But it comes out as:
Wednesday, April 16, 2014 a 2:24 PM
It seems the "t" in "at" is not escaping properly. Am I doing anything wrong? Please help, thanks in advance!!
You need to use single quotes:
date('l, F d, Y \a\t g:i A', strtotime($list['publish_time']))
\t in double-quotes (date("\t")) is first parsed as tab character, thus the actual letter is missing.

PHP Date - How to add a string to separate date and time

I want to display date and time format something like this "May 23 at 12:30pm".
I saw in PHP manual and found:
// Prints something like: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');
After modification I manage to get
echo date('M j \of h:i a');
it is giving me "May 23 of 12:30pm"
but when i replacing of with at it is giving me "May 23 a23 08:26 pm".
I don't what is going wrong.
you need to escape the a and t as both have special meaning when used as formatting options in date()
echo date('M j \a\t h:i a');
See it in action
Try
<?php
echo date('M j \a\t h:i a');
?>
OR
<?php
echo date('M j'). "at". date(' h:i a');
?>
You need to escape the t too:
echo date('M j \a\t h:i a');
Another option could be:
echo date('M j')." at ".date('h:i a');
You need to try this in php:
$t = now(); //This will give you current time
echo date_format($t,"dS M,y \a\\t h:i a"); //14th May,19 at 05:39am

How to append a string in date function first parameter?

I have following code
$date = '2013-05-11 07:10:14';
echo date('F j, Y at h:i a', strtotime($date); //Not work; May 11, 2013 at 7:10 am
echo date('F j, Y h:i a', strtotime($date); // This will work when avoiding the `at` from date function.
I am trying to append string in date function to display the above date as May 11, 2013 at 7:10 am. How to make date at this format using prebuilt date function?
Try escaping the at string,
echo date('F j, Y \a\t h:i a', strtotime($date));
DEMO.
You need to escape any letters that are also formatting queues. You have to double escape the "t" because \t is the tab character.
echo date('F j, Y \a\\t h:i a');
See it in action

PHP date showing weird year/date from timestamp

I have the following timestamp:
1341111034380
Which equates to:
Sun, 01 Jul 2012 02:50:34 GMT
However, when I try to format this using:
date("F j, Y, g:i a", 1341111034380)
I get:
February 12, 44468, 5:53 am
Any ideas why it would do this?
You have the wrong units.
1341111034380 is in milliseconds, whereas a proper timestamp is in seconds, which is what PHP expects.
If you want to use it in PHP, you should convert it to seconds.
echo date("F j, Y, g:i a", floor(1341111034380/1000));
use:
echo date("F j, Y, g:i a", substr(1341111034380, 0, 10));

Categories