2010-03-24 3 views
27

J'ai besoin de calculer l'horodatage d'il y a exactement 7 jours en utilisant PHP, donc si c'est actuellement le 25 mars à 19h30, cela retournera l'horodatage du 18 mars à 19h30.Obtenez l'horodatage d'exactement une semaine en PHP?

Devrais-je simplement soustraire 604800 secondes de l'horodatage actuel, ou y a-t-il une meilleure méthode?

Répondre

20

strtotime est votre ami

echo strtotime("-1 week"); 
+0

Vous avez strotime faute de frappe pour strtotime .. :) trop tôt il y a seulement 5 ans ..: D –

+0

@Yegya Ha! Correction: P –

6

Il y a l'exemple suivant sur PHP.net

<?php 
    $nextWeek = time() + (7 * 24 * 60 * 60); 
       // 7 days; 24 hours; 60 mins; 60secs 
    echo 'Now:  '. date('Y-m-d') ."\n"; 
    echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n"; 
    // or using strtotime(): 
    echo 'Next Week: '. date('Y-m-d', strtotime('+1 week')) ."\n"; 
?> 

Changer de + à - sur la première (ou dernière) ligne obtiendra ce que vous voulez.

-1
<?php 
    $before_seven_day = $date_timestamp - (7 * 24 * 60 * 60) 
    // $date_timestamp is the date from where you found to find out the timestamp. 
?> 

Vous pouvez également utiliser la fonction chaîne à heure pour convertir la date en horodatage. comme

strtotime(23-09-2013); 
+1

@AndrewBarber La réponse a peut-être été modifiée, mais cette réponse ne semble pas inclure de lien vers quoi que ce soit. – starbeamrainbowlabs

3

De PHP 5.2 vous pouvez utiliser DateTime:

$timestring="2015-03-25"; 
$datetime=new DateTime($timestring); 
$datetime->modify('-7 day'); 
echo $datetime->format("Y-m-d"); //2015-03-18 

Au lieu de créer DateTime avec chaîne, vous pouvez setTimestamp directement sur l'objet:

$timestamp=1427241600;//2015-03-25 
$datetime=new DateTime(); 
$datetime->setTimestamp($timestamp); 
$datetime->modify('-7 day'); 
echo $datetime->format("Y-m-d"); //2015-03-18 
Questions connexes