Я пытаюсь рассчитать время, прошедшее с момента публикации комментария. Я нашел function для этого, и он хорошо работаетPHP: получение смещения временной зоны от пользователя и вычисление «время назад»
Но я просто заметил, что время, показанное пользователю, неверно из-за его/ее часового пояса. Я провел некоторое исследование, и решение, похоже, было , минуя смещение часового пояса пользователя на php-страницу с помощью функции javascript под названием getTimezoneOffset
.
проблема заключается в том, что я не могу использовать это смещение, чтобы создать часовой пояс и использовать его для этой функции, связанной выше. С помощью another code то, что я мог собрать до сих пор:
function humanTiming ($time,$offset)
{
$isDST = 1; // Daylight Saving 1 - on, 0 - off
$timezoneName = timezone_name_from_abbr('', intval($offset, 10) * 36, $isDST);
$date = new DateTime($time, new DateTimeZone($timezoneName));
$time = strtotime($date);
$time = time() - $time; // to get the time since that moment
$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':'');
}
}
И давайте назовем функцию так:
echo humanTiming ($row['date'],"-240");
Примечание: -240
значение, которое я получаю от работы этой функции яваскрипта, так это, вероятно, мое смещение по часовой стрелке.
Первый номер: Кажется, значение -240
недействительно и что-то вроде -0500
работает.
Второго выпуск: даже если я пытаюсь с действительным значением смещения, функция возвращает 42 years
Не знаю, как это 42 лет рассчитываются, но его совершенно неправильно.
Я изменил код в соответствии с вашей должности , теперь функция ничего не возвращает. – xperator
Я думаю, что что-то не так со временем, сама функция, исправлены проблемы с смещением и временной меткой. Большое спасибо. Кажется, он ничего не рассчитывает, так как несколько часов назад или, может быть, несколько минут назад. Не знаю, почему. Математические вопросы: P – xperator
ok После проведения большого количества испытаний и испытаний проблема заключалась в смещении. Это должно быть положительное число. поэтому умножил его на «-1». Еще раз спасибо :) – xperator