web-dev-qa-db-fra.com

Conversion de DateTime en String PHP

J'ai déjà fait beaucoup de recherches sur le site pour convertir l'objet PHP DateTime en chaîne. Je vois toujours "String to DateTime" et non pas "DateTime to String"

PHP DateTime peut être répercuté, mais ce que je veux traiter mon DateTime avec PHP fonctions de chaîne.

Ma question est la suivante: comment puis-je associer un objet PHP dateTime à une chaîne commençant par ce type de code:

$dts = new DateTime(); //this returns the current date time
echo strlen($dts);
197
Mp de la Vega

Vous pouvez utiliser la méthode format de la classe DateTime:

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

Si format échoue pour une raison quelconque, il retournera FALSE. Dans certaines applications, il peut être judicieux de gérer le cas d'échec:

if ($result) {
  echo $result;
} else { // format failed
  echo "Unknown Time";
}
367
rjz

Le moyen le plus simple que j'ai trouvé est:

$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;

J'espère que ça aide.

14
sailer

Il y a des formats prédéfinis dans date_d.php à utiliser avec format comme:

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");

Utilisez comme ceci:

$date = new \DateTime();
$string = $date->format(DATE_RFC2822);
13
Glauco Neves
echo date_format($date,"Y/m/d H:i:s");
12
Dhawal Naik

Plus court chemin en utilisant la liste. Et vous pouvez faire ce que vous voulez avec chaque composant de date.

list($day,$month,$year,$hour,$min,$sec) = explode("/",date('d/m/Y/h/i/s'));
echo $month.'/'.$day.'/'.$year.' '.$hour.':'.$min.':'.$sec;
1
lisandro

Cela a fonctionné pour moi

$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);
0
sumit sharma