#php
#php
Вопрос:
У меня есть две переменные, содержащие разные даты в базе данных, одна — дата создания, а другая — дата истечения срока действия. Как я могу вычесть первую дату из другой, чтобы я мог вернуть оставшиеся дни с помощью phpmysql.
Комментарии:
1. ну, в вашем названии упоминается «без использования date_diff». мой вопрос был бы таким: почему ? поскольку это именно цель
date_diff
.2. date_diff вернет активную дату, когда истечет срок действия, она все равно вернет номер активного дня. например : <?php $prod=date_create(«2014-03-19»); $exp=date_create(«2014-03-13»); $diff=date_diff($prod,$exp); echo $diff->формат(«%в день,»); ? >
3. ооочень просто уловить этот случай с
if($prod>$exp) { echo "expired"; }
?
Ответ №1:
Я думаю, что ваши даты хранятся в полях datetime. Таким образом, вы можете найти разницу таким образом:
$seconds = strtotime( $expired ) - strtotime( $created );
/*** get the days ***/
$days = intval($seconds / (60 * 60 *24));
Ofc, вы можете использовать DateTime для своих целей
Ответ №2:
Сначала используйте strtotime для каждой даты, чтобы преобразовать временную метку Unix.
$date_created = strtotime($date_created);
$date_expired = strtotime($date_expired);
Затем получите вторые различия и умножьте результаты на секунды дня.
$date_diff = floor(($date_expired - $date_created) / (60 * 60 * 24));
echo "Date diff: " . $date_diff . " days";
Я не пробовал коды. Надеюсь, это сработает.