Aujourd'hui, la date et l'heure en php
Est-il possible de changer de php date et l'heure actuelles (quelque chose comme set_time(strtotime('1999-09-09')) donc, quand je l'appelle de temps (), il sera de retour moi timestamp pour 1999-09-09? J'ai besoin de régler de façon globale pour l'ensemble de l'application.
MODIFIER
J'en ai déjà un vieux application et j'ai besoin de faire possible de configurer la date actuelle.
Je ne peux pas accepter toutes les fonctions personnalisées. Imagine que je doit revoir tout le code et de le remplacer à chaque fois() l'appel. Même si je vais le faire alors il ne va pas aider, car il y a des fonctions comme la fonction getdate() qui je dois la remplacer.
Parfois, des mises à jour à l'ensemble des projets est une nécessité. C'est pourquoi ils ont inventé des systèmes de contrôle de révision. Il est également possible de créer un script qui recherche dans chaque fichier pour le texte "time()" et le remplace par "myTime()". C'est assez simple en utilisant l'
file_get_contents()
, str_replace()
, et file_put_contents()
.OriginalL'auteur vooD | 2010-10-13
Vous devez vous connecter pour publier un commentaire.
La
time()
fonctions de demande réellement le système de l'horloge pour le temps, de sorte que vous auriez à mettre à jour l'heure du serveur d'horloge du système. Quelques choses à garder à l'esprit:Si vous souhaitez modifier la durée à l'échelle mondiale pour l'ensemble d'une application, je recommande d'avoir une variable statique
$timeOffset
et de créer votre propretime()
fonction comme suit:Si vous avez pris tout cela en compte et encore modifier l'heure du système, cependant, vous avez besoin d'envoyer une commande à la coquille à l'aide de
shell_exec()
Dans Windows, le code ressemblera à ceci:
Dans UNIX, selon le
date
page de man, le code devrait ressembler à:comme je comprends que j'ai besoin de droits pour changer la date thru shell. Pas sûr que cela est possible pour www-data ou apache2 utilisateur. En tout cas bon point. Check it out.
OriginalL'auteur stevendesu
Vous pouvez aussi vérifier les Timecop module PHP, a parfaitement fonctionné dans mon cas.
Après l'installation, vous pouvez le voyage de retour & dans le temps avec une seule ligne de code.
Parfait! Ce doit être la réponse acceptable!
OriginalL'auteur zmf
PHP ne dispose pas de la date et de l'heure sur son propre. time() retourne le timestamp actuel de l'heure du serveur. Selon votre système d'exploitation, il se pourrait bien que vous (c'est à dire l'utilisateur qui exécute votre script du processus) ne sont pas autorisés à changer le serveur de la date et de l'heure.
Qui pose une autre question: Pourquoi voulez-vous faire cela?
Mieux serait de mettre en place votre propre fonction time ():
Et puis, partout où vous utilisez
time()
, utilisezmyTime::getTime();
. Pour régler l'heure, l'utilisationmyTime::setTime($time)
où$time
est le timestamp que vous souhaitez utiliser.OriginalL'auteur Pelle ten Cate
Non, il n'est pas. PHP obtient son temps à partir de l'heure du système. La seule façon vous pouvez changer ce que PHP voit que le temps est de changer l'heure du système.
Il peut être réalisable pour vous de le faire à l'aide
exec()
ou quelque chose de similaire, mais probablement pas souhaitable.Une meilleure solution peut être de créer votre propre fonction de temps, vous pouvez indiquer, à l'aide d'un décalage.
par exemple:
C'est juste quelque chose que j'ai jeté rapidement pour vous. Je n'ai pas testé, donc il existe peut-être (sans doute) des bugs, mais j'espère que ça vous donne suffisamment pour obtenir une solution.
OriginalL'auteur Spudley
Vous pouvez également essayer d'utiliser la
$_SERVER['REQUEST_TIME']
variable (disponible depuis PHP 5.1.0) et de le remplacer au moment de l'exécution.OriginalL'auteur kenorb