Вычислите процент прошедшего дня
немного странный вопрос, но надеюсь, что кто-то может помочь.
по существу, если время было 12pm, то прошедший процент будет 50%, 6am будет 25% и 16pm будет 75%.
учитывая текущее время, как вы могли бы определить количество дней, которые уже прошли?
5 ответов
предполагая, что вы можете получить текущее время суток, было бы довольно легко рассчитать процент прошедшего дня.
percentage = (hours / 24 + minutes / (60 * 24)) * 100
gettimeofday (true) возвращает количество секунд, прошедших с полуночи как поплавок (я думаю), поэтому вы хотите: gettimeofday(true)/(60*60*24)
. Умножьте на 100, чтобы получить процент.
EDIT: на самом деле, gettimeofday возвращает количество секунд, прошедших с начала эпохи, поэтому вам нужно вычесть midnight:
$midnight = strtotime('00:00');
$epochseconds = gettimeofday(true);
$timeofdayseconds = $epochseconds - $midnight;
$timepercent = $timeofdayseconds/(60*60*24)*100;
принятый ответ беспокоит меня по многим причинам, включая отношение к календарю реальной жизни. Лично я, вероятно, сделал бы это:
<?php
$start = strtotime("today");
$end = strtotime("tomorrow");
$now = time();
$secondstoday = $end - $start;
$secondselapsed = $now - $start;
$percentage = ($secondselapsed / $secondstoday ) * 100;
printf('%.2f%% of the day has passed (%d out of %d seconds)', $percentage, $secondselapsed, $secondstoday);
результат:
72.22% of the day has passed (62402 out of 86400 seconds)
затем вы можете расширить его еще дальше, сделав функцию и изменив диапазон от "today"
и "tomorrow"
к чему-то еще.
Я не знаю php, но есть ли способ получить текущую ведьму даты, я думаю :P можете ли вы извлечь часы из этого или минуты, насколько точно вы хотите, чтобы это было?, Текущие часы / 24 * 100: P текущие минуты / 1440 * 100