web-dev-qa-db-fra.com

Comment puis-je obtenir l'horodatage d'aujourd'hui dans PHP

J'ai essayé 

$dtToday = DateTime::createFromFormat('Y-m-d', date('Y-m-d'));

mais quand je le sors

die($dtToday->format('d M Y g:i:s a'));

J'ai toujours l'heure, par exemple "22 janvier 2011 16h53:59". Pourquoi donc? 

METTRE À JOUR

Ah ... beaucoup de gens m'ont mal compris, mon mal, j'ai oublié de souligner le point principal. J'ai créé la date avec seulement la portion de date, je ne veux pas l'heure. Donc, je m'attendrais à quelque chose comme 

22 Jan 2011 12:00:00 am
12
Jiew Meng

Vous pouvez appeler ->setTime(0, 0) pour mettre à zéro la partie temps:

$date = DateTime::createFromFormat('Y-m-d', '2011-01-22')->setTime(0, 0);
echo $date->format('d M Y g:i:s a');
// 22 Jan 2011 12:00:00 am
14
Salman A

Voir la documentation de DateTime::createFromFormat :

Si format ne contient pas le caractère! alors, les parties de l'heure générée qui ne sont pas spécifiées dans format seront définies sur l'heure système actuelle.

Si vous effectuez l'appel de fonction suivant, vous obtiendrez le résultat attendu:

$dtToday = DateTime::createFromFormat('!Y-m-d', date('Y-m-d'));
14
lonesomeday

Vous pouvez le faire en passant le timestamp Unix actuel comme second paramètre à la fonction de date 

echo date("Y-m-d H:i:s",time());
6
naiquevin

Horodatage de début d'aujourd'hui

$today_start_ts = strtotime(date('Y-m-d', time()). '00:00:00');
5
Vodaldrien

Vous obtenez "22 janvier 2011 16:53:59" parce que ce sont les règles à suivre pour formater votre date avec:
d (jour): 22
M (Mois): Jan
Y (Année): 2011
g (format 12 heures): 4
i (minutes): 53
s (secondes): 59
a (am/pm): pm
Soyez plus précis sur le format que vous souhaitez que votre horodatage ait. Je suggère que vous preniez un pic à la date php }.

1
gion_13

Est-ce qu'il utilise UTC ou quelque chose comme ça?

J'ai une version PHP qui me donne une erreur chaque fois que je fais quelque chose lié à date sans d'abord utiliser date_default_timezone_set. Peut-être que ça vous aidera.

0
sdleihssirhc

Supprimez cette partie g:i:s a de votre code.

Maintenant, si vous voulez une date Nice formatée en fonction de votre région, je vous recommande d’utiliser la fonction strftime() .

0
Xavier Barbosa