2012-08-01 3 views
2

Je me demande s'il y a une raison pour que la classe DateTime ne fonctionne pas ou ne soit pas supportée par mon serveur. Mes caractéristiques sont les suivantes:La classe PHP DateTime ne fonctionne pas

  1. PHP 5.3.10
  2. Drupal 7,12

Je ne suis pas sûr que ce soit une chose Drupal ou quoi. Je n'ai aucune idée de l'endroit où chercher s'il y a eu une erreur et cela me dérange que quelque chose qui est censé faire partie du noyau ne l'est pas. Un script simple comme:

<?php 
    $d = new DateTime(); 
    echo $d->format("Y-m-d"); 
?> 

fonctionne sur mon serveur de test MAMP local, mais pas sur le serveur distant. Alors est-ce une sorte de manigances Drupal ou quelque chose qui aurait pu être désactivé/exclu en PHP? Comment puis-je le réparer?

+1

Quel message d'erreur que vous obtenez? –

+0

Ah ok je pensais que je ne recevais pas d'erreurs dans mon error_log mais il s'avère que je suis. Ils donnent une erreur d'Exception non saisie: "Il n'est pas sûr de s'appuyer sur les paramètres du fuseau horaire du système." Donc je suppose que cela signifie que je dois définir explicitement le fuseau horaire? – Perley

+0

Oui. Vous le faites soit dans votre fichier php.ini ou dans votre script php en utilisant 'date_default_tiemzone_set()' http://php.net/manual/fr/function.date-default-timezone-set.php – Matt

Répondre

0

Selon http://php.net/manual/en/datetime.installation.php:

There is no installation needed to use these functions; they are part of the PHP core.

Il y a quelques paramètres de php.ini qui pourrait potentiellement avoir un effet sur l'opération DateTime, mais je ne sais pas s'ils le faire fonctionner pas du tout : http://php.net/manual/en/datetime.configuration.php

à la lumière de la récente commentaire, vous pouvez définir le décalage horaire dans votre php.ini avec le paramètre du lien précédent, ou vous pouvez le faire à l'exécution avec la fonction date_default_timezone_set() qui accepte un identifiant de décalage horaire qui peut être trouvé dans this list.

En savoir plus sur la fonction: http://php.net/manual/en/function.date-default-timezone-set.php

+0

Ce n'est pas vraiment une réponse, même si c'est un peu long d'être un commentaire ... – Matt

+0

@Matt C'était le dilemme avec l'information que je voulais fournir. Pour ma défense, la question laisse également beaucoup à désirer. –

+0

C'est pour ça que je n'ai pas voté. – Matt