Поэтому я пытаюсь получить две метки времени UNIX из веб-файла JSON, поэтому я хочу выполнить одно и то же действие 2 раза (для двух разных меток времени). JSON содержит 2 метки времени, которые я собираюсь использовать на своем веб-сайте, но я не знаю, как получить их обе одновременно. Я надеюсь, что все это имеет смысл …
Это мой код;
$epoch_jd = $json["response"]["players"][0]["timecreated"]; //UNIX TIME STAMP
$readepoch_jd = gmdate('Y-m-d H:i:s', $epoch_jd);
$time_jd = strtotime($readepoch_jd);
function humanTiming ($time_jd)
{
$time_jd = time() - $time_jd;
$time_jd = ($time_jd<1)? 1 : $time_jd;
$tokens_jd = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach ($tokens_jd as $unit_jd => $text_jd) {
if ($time_jd < $unit_jd) continue;
$numberOfUnits_jd = floor($time_jd / $unit_jd);
return $numberOfUnits_jd.' '.$text_jd.(($numberOfUnits_jd>1)?'s':'');
}
}
Чем это другой код, который у меня есть.
$epoch_ol = $json["response"]["players"][0]["lastlogoff"]; //UNIX TIME STAMP
$readepoch_ol = gmdate('Y-m-d H:i:s', $epoch_ol);
$time_ol = strtotime($readepoch_ol);
function humanTiming ($time_ol)
{
$time_ol = time() - $time_ol;
$time_ol = ($time_ol<1)? 1 : $time_ol;
$tokens_ol = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach ($tokens_ol as $unit_ol => $text_ol) {
if ($time_ol < $unit_ol) continue;
$numberOfUnits_ol = floor($time_ol / $unit_ol);
return $numberOfUnits_ol.' '.$text_ol.(($numberOfUnits_ol>1)?'s':'');
}
}
Заранее спасибо 🙂
Просто объявите свою функцию один раз, неспецифическим способом:
function humanTiming ($time)
{
$time = time() - $time;
$time = ($time<1)? 1 : $time;
$tokens = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time / $unit);
return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}
}
Затем позвоните дважды:
$epoch_jd = $json["response"]["players"][0]["timecreated"]; //UNIX TIME STAMP
$readepoch_jd = gmdate('Y-m-d H:i:s', $epoch_jd);
$time_jd = strtotime($readepoch_jd);
echo humanTiming($time_jd);
$epoch_ol = $json["response"]["players"][0]["lastlogoff"]; //UNIX TIME STAMP
$readepoch_ol = gmdate('Y-m-d H:i:s', $epoch_ol);
$time_ol = strtotime($readepoch_ol);
echo humanTiming($time_ol);
Других решений пока нет …