У меня проблема со временем сравнения с PHP - я думаю, что я должен делать что-то глупое, но я пробовал разные вещи в течение нескольких часов, и я просто ударяю о кирпичную стену.Сравнение времени PHP Nightmare
Я вынимаю данные из API EVE, а затем делаю чек, там, где есть подписка, и где есть навык в обучении - с обоими из них есть определенный временной интервал (1 неделя для подписки и 12 часов для навыков), что я хотел бы отметить предупреждение, но я не могу заставить его работать вообще. Результат всех дат и времени, кажется, правильный формат, который я просто не могу получить, чтобы сравнение работало.
Мне интересно, может ли кто-нибудь указать, что наиболее вероятно, моя глупая ошибка и дать мне толчок в правильном направлении.
спасибо взглянуть,
<?php
// ---- For Skill Queue
$apiSection = "char/SkillQueue";
$urlChar = "https://api.eveonline.com/$apiSection.xml.aspx?keyID=$keyID&vCode=$vCode&characterID=$charID";
$data = file_get_contents($urlChar);
$xml = new SimpleXMLElement($data);
foreach ($xml->result->rowset->row as $row){
$charQueueEndTemp = $row{'endTime'};
}
$charQueueEnd = date("d-m-Y H:m", strtotime($charQueueEndTemp));
//echo "Skill Test" . $charQueueEnd;
// --- Account API
$apiSection = "account/AccountStatus";
$urlAccount = "https://api.eveonline.com/$apiSection.xml.aspx?keyID=$keyID&vCode=$vCode";
$data = file_get_contents($urlAccount);
$xml = new SimpleXMLElement($data);
$accSubsTemp = $xml->result->{'paidUntil'}->{0};
$accSubs = date("d-m-Y H:m", strtotime($accSubsTemp));
date_default_timezone_set('Europe/Paris');
$currentDate = date("d-m-Y H:m");
$lessWeek = date("d-m-Y H:m", strtotime("-1 week"));
$plusWeek = date("d-m-Y H:m", strtotime("+1 week"));
$plus12Hour = date("d-m-Y H:m", strtotime("+12 hour"));
//Date Tests
//echo "</br> Curent Date: ".$currentDate;
//echo "</br> Plus Week: ".$plusWeek;
//echo "</br>Acc Subs: ".$accSubs;
//echo "</br>Acc +12: ".$plus12Hour;
// -- Account Subscribed Check
if($currentDate > $accSubs){
echo "Account is not Subscribed";
}
elseif($plusWeek > $accSubs){
echo "Account has less than 1 week Subscription";
}
else{
echo "Account is Subscribed";
}
// -- Skill Training Check
if($charQueueEnd = null){
echo "Skill Queue Ended";
}
elseif($plus12Hour > $charQueueEnd){
echo "Skill Queue ending in less than 12 Hours";
}
else{
echo "Skill Queue Active";
}
?>
НЕ СРАВНИТЬ ДАТУ/ВРЕМЯ КАК СТРОИТЕЛЬНЫЕ ЗНАЧЕНИЯ –
Преобразовать в «timestamp» (UNIX будет довольно безопасным, так как EVE только раунд в течение 10 лет или около того) и сравнить их. – naththedeveloper