Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert DateTime to String PHP

Tags:

php

datetime

I have already researched a lot of site on how can I convert PHP DateTime object to String. I always see "String to DateTime" and not "DateTime to String"

PHP DateTime can be echoed, but what i want to process my DateTime with PHP string functions.

My question is how can I make PHP dateTime Object to a string starting from this kind of code:

$dts = new DateTime(); //this returns the current date time
echo strlen($dts);
like image 989
Netorica Avatar asked May 13 '12 03:05

Netorica


People also ask

How to print DateTime object php?

php time format$today = date('\i\t \i\s \t\h\e jS \d\a\y.


6 Answers

You can use the format method of the DateTime class:

$date = new DateTime('2000-01-01');
$result = $date->format('Y-m-d H:i:s');

If format fails for some reason, it will return FALSE. In some applications, it might make sense to handle the failing case:

if ($result) {
  echo $result;
} else { // format failed
  echo "Unknown Time";
}
like image 86
rjz Avatar answered Oct 04 '22 10:10

rjz


echo date_format($date,"Y/m/d H:i:s");
like image 33
Dhawal Naik Avatar answered Oct 04 '22 09:10

Dhawal Naik


The simplest way I found is:

$date   = new DateTime(); //this returns the current date time
$result = $date->format('Y-m-d-H-i-s');
echo $result . "<br>";
$krr    = explode('-', $result);
$result = implode("", $krr);
echo $result;

I hope it helps.

like image 22
sailer Avatar answered Oct 04 '22 11:10

sailer


There are some predefined formats in date_d.php to use with format like:

define ('DATE_ATOM', "Y-m-d\TH:i:sP");
define ('DATE_COOKIE', "l, d-M-y H:i:s T");
define ('DATE_ISO8601', "Y-m-d\TH:i:sO");
define ('DATE_RFC822', "D, d M y H:i:s O");
define ('DATE_RFC850', "l, d-M-y H:i:s T");
define ('DATE_RFC1036', "D, d M y H:i:s O");
define ('DATE_RFC1123', "D, d M Y H:i:s O");
define ('DATE_RFC2822', "D, d M Y H:i:s O");
define ('DATE_RFC3339', "Y-m-d\TH:i:sP");
define ('DATE_RSS', "D, d M Y H:i:s O");
define ('DATE_W3C', "Y-m-d\TH:i:sP");

Use like this:

$date = new \DateTime();
$string = $date->format(DATE_RFC2822);
like image 29
Glauco Neves Avatar answered Oct 04 '22 09:10

Glauco Neves


Shorter way using list. And you can do what you want with each date component.

list($day,$month,$year,$hour,$min,$sec) = explode("/",date('d/m/Y/h/i/s'));
echo $month.'/'.$day.'/'.$year.' '.$hour.':'.$min.':'.$sec;
like image 24
lisandro Avatar answered Oct 04 '22 09:10

lisandro


Its worked for me

$start_time   = date_create_from_format('Y-m-d H:i:s', $start_time);
$current_date = new DateTime();
$diff         = $start_time->diff($current_date);
$aa           = (string)$diff->format('%R%a');
echo gettype($aa);
like image 45
sumit sharma Avatar answered Oct 04 '22 09:10

sumit sharma