@IT-sorce

Как мне сохранить текущее время и сравнять с прошлым PHP?

Такая задача:
Сохранить текущую дату в массив та сравнить с прошлой если прошло 24 часа то записать новую дату в масив и сравнять с текущей
вот код:
<?php 
header("Content-Type: text/html; charset=utf-8");
date_default_timezone_set('Europe/Kiev');
$dateB = date('Y/m/d H:i:s');

echo $dateA;
echo $dateB;


    $dateA = '2020/11/06 23:44:06'; 

    $timediff = strtotime($dateA) - strtotime($dateB);

if($timediff > 86400){ 
     $ch = curl_init('https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_HEADER, false);
        $html = curl_exec($ch);
        curl_close($ch);
        // print_r(json_decode($html,true)); 
        function getCurs($array,$val){
            foreach($array as $key => $value){
                if($value['cc'] == $val){
                    return $value;
                }
                
            }
        }

    $jsonusd = ($html);
    $USD = (getCurs(json_decode($jsonusd,true),'USD'));
    echo $USD["rate"];
}
else
{
 echo 'Еще не прошло 24 часа';
}

?>
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 3
Stalker_RED
@Stalker_RED
$dateA = '2020/11/06 23:44:06'; - это хардкод. при каждом запуске будет именно это значение.
Если хочешь его менять, нужно выносить это значение в отдельный файл или в базу данных.
Ответ написан
Комментировать
JaxAdam
@JaxAdam
Junior Full-Stack Developer
strtotime("now")
Ответ написан
Комментировать
@generate
...
Сравнивать секунды можно, но там ограничение какое то я раньше хотел так сравнить больше 1 часа не помню, но он не сработал. Потом я нашел этот способ работает точнее и лучше
<?php
$date = '2020/11/06 23:44:06'; 

//К $date добавленная 24 часа, если не нужно можно убрать
$date1 = DateTime::createFromFormat('Y/m/d H:i:s', date('Y/m/d H:i:s', strtotime($date. "+24 hours" )));  
$date2 = DateTime::createFromFormat('Y/m/d H:i:s', date('Y/m/d H:i:s'));  //Текущее время

//Текущее время больше или равно $date
if ($date1 <= $date2) { 
  echo 'Прошло 24 часа'; 
} else {
	echo "Еще не прошло 24 часа";
}
?>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы