время () функция математика - PullRequest
       0

время () функция математика

0 голосов
/ 21 октября 2011

Я использую time () для сохранения даты в базе данных.У меня есть какой-то рекламный сайт.Пользователи представляют свои объявления и количество дней, в которые они хотят, чтобы их объявления показывались, например:

title: заголовок объявления ....

продолжительность: 20 дней

дата создания: время () (я получаю дату создания по времени (), когда я отправляю это объявление в базу данных.)

Мне нужно рассчитать дату окончания срока действия для каждого объявления в эпохуформат.

exp_date = creation date + 20 days ; /// this line is hypothetical , i need correct way to calculate exp_Date
sql->set(experation date = exp_date);

Также мне нужно знать, сколько времени осталось до даты опыта в днях, часах и минутах и ​​показать ее на странице.

    $current time = time();
    $remaining_time = $current time - $exp date ; //this line is hypothetical , i need correct way to calculate remaining_time
    echo 'remaining time : '.$remaining_time ;

Наконец-то яне хотите показывать объявления с истекшим сроком (я не уверен, что лучший способ сделать это - рассчитать время, когда я показываю объявления, может быть, я смогу каким-то образом автоматически отключить статус объявлений через 20 дней?)

Ответы [ 3 ]

1 голос
/ 21 октября 2011

Для расчета срока годности:

$expiration = time() + 1728000; // 1728000 = 20 * 24 * 60 * 60 (20 days)

Чтобы рассчитать оставшееся время, вы должны сделать что-то вроде

$currentTime = time();
$seconds = $expiration - $currentTime;

$daysLeft = (int)($seconds / 86400); // 86400 = 24*60*60 (seconds in one day)
$seconds -= $daysLeft * 86400;
$hoursLeft = (int)($seconds / 3600); // 3600 = 60*60 (seconds in one hour)
$seconds -= $hoursLeft * 3600;
$minutesLeft = (int)($seconds / 60); // seconds in one minute
$seconds -= $minutesLeft * 60;

$daysLeft, $hoursLeft, $minutesLeft и $seconds - это значения, которые вы хотите

0 голосов
/ 21 октября 2011

Мне нужно рассчитать срок годности для каждого объявления в формате эпохи.

Вы случайно не знаете, сколько секунд в одной минуте? Как насчет минут в час? Часы в день?
что делает вас неспособными умножить эти числа?

Я не хочу показывать просроченные объявления

не показывать их. это то, для чего SQL. WHERE exp_date > unix_timestamp() выберет только актуальные объявления.

0 голосов
/ 21 октября 2011

Почему бы не упростить жизнь, запуская сценарий один раз в день (cron сделает это) и не удаляя (или перемещая) их через эти объявления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...