comment obtenir la date/heure actuelle comme un objet date en PHP
Comment obtenez-vous la date d'aujourd'hui, comme un objet date?
Je suis en train de calculer la différence entre une date de début et d'aujourd'hui. Le code suivant ne fonctionnera pas, parce que getdate()
retourne un tableau et non une date objet:
$today = getdate();
$start = date_create('06/20/2012');
$diff = date_diff($start, $today);
echo($today . '<br/>' . $start . '<br/>' . $diff);
De sortie:
Array ( [secondes] => 8 [minutes] => 1 [heures] => 16 [mday] => 11 [wday] => 1 [mon] => 6 [année] => 2012 [yday] => 162 [en semaine] => lundi [mois] => juin [0] => 1339455668 )
Objet DateTime ( [date] => 2012-06-20 00:00:00 [timezone_type] => 3 [fuseau horaire] => America/Los_Angeles )
OriginalL'auteur McGarnagle | 2012-06-11
Vous devez vous connecter pour publier un commentaire.
http://www.php.net/manual/en/datetime.construct.php
La comparaison est facile:
Op modifier
J'ai juste besoin d'appeler date_default_timezone_set, et ensuite ce code a fonctionné pour moi.
$today = new DateTime("now");
est plus clair, même si l'argument n'est par défaut à "maintenant".Le code $aujourdhui = new DateTime('now'); est en fait de lancer une erreur de quelque sorte. (500 erreur interne du serveur)
Pouvez-vous être plus précis? Quelle est la version de PHP en cours d'exécution? codepad.org/5lYyo8MC
Je suis en PHP5 dans IIS.
OriginalL'auteur Mike B
Pour obtenir de différence dans les jours de l'utilisation de ce:
le temps dans cet objet eill 00:00:00
Si vous voulez différence avec heures, minutes et secondes, utilisez ceci:
OriginalL'auteur Skipper
J'ai fini par utiliser le date_create constructeur sans paramètre) pour obtenir la date actuelle.
De sortie:
Je n'ai aucune idée pourquoi, mais Mike B de la réponse (et de tout constructeur, j'ai essayé de DateTime) a jeté une erreur pour moi en PHP5 /IIS.
DateTime
pas réussi à instancier vous pouvez essayer d'activer le rapport d'erreurs. Erreur 500 est IIS façon de vous dire que PHP barfed mais il ne va pas beaucoup plus spécifique. Vous pouvez contrôler le niveau de rapport d'erreur en plaçant ces fonctions au début de votre script:error_reporting(-1); ini_set('display_errors', 1); ini_set('display_startup_errors', 1);
. IIS du journal des erreurs peut également contenir des messages d'erreur spécifiques.merci. C'était l'erreur: Il n'est pas sûr de s'appuyer sur le système de paramètres de fuseau horaire. Vous êtes tenus d'utiliser la date.le fuseau horaire ou le date_default_timezone_set() function. une Fois que j'appelle date_default_timezone_set, votre réponse œuvres.
OriginalL'auteur McGarnagle