Получить временную метку ровно неделю назад в PHP? - PullRequest
37 голосов
/ 24 марта 2010

Мне нужно вычислить метку времени ровно 7 дней назад с использованием PHP, поэтому, если она в настоящее время 25 марта в 19:30, она вернет метку времени 18 марта в 19:30.

Стоит ли просто вычесть 604800 секунд из текущей метки времени или есть лучший способ?

Ответы [ 6 ]

81 голосов
/ 24 марта 2010
strtotime("-1 week")
26 голосов
/ 24 марта 2010

strtotime твой друг

echo strtotime("-1 week");
11 голосов
/ 24 марта 2010

http://php.net/strtotime

echo strtotime("-1 week");
9 голосов
/ 24 марта 2010

На 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";
?>

Изменение + на - в первой (или последней) строке даст то, что вы хотите.

4 голосов
/ 17 апреля 2015

С PHP 5.2 Вы можете использовать DateTime :

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

Вместо создания DateTime со строкой, вы можете setTimestamp непосредственно для объекта:

$timestamp=1427241600;//2015-03-25
$datetime=new DateTime();
$datetime->setTimestamp($timestamp);
$datetime->modify('-7 day');
echo $datetime->format("Y-m-d"); //2015-03-18
0 голосов
/ 08 марта 2013
<?php 
   $before_seven_day = $date_timestamp - (7 * 24 * 60 * 60)
   // $date_timestamp is the date from where you found to find out the timestamp.
?>

Вы также можете использовать функцию строка-время для преобразования даты в метку времени. как

strtotime(23-09-2013);
...