Определите процент прошедшего дня - PullRequest
7 голосов
/ 26 января 2009

Немного странный вопрос, но, надеюсь, кто-то может помочь.

По сути, если время было 12 часов, истекший процент будет 50%, 6 часов утра будет 25%, а 16 часов будет 75%.

Учитывая текущее время, как вы могли бы рассчитать количество прошедшего дня?

Ответы [ 5 ]

12 голосов
/ 26 января 2009

Предполагая, что вы можете узнать текущее время дня, было бы довольно легко рассчитать процент прошедшего дня.

percentage = (hours / 24 + minutes / (60 * 24)) * 100
4 голосов
/ 26 января 2009

24 часа 100% итак 24 / currentTime = результат 100 / результат =%;)

3 голосов
/ 26 января 2009

gettimeofday (true) возвращает число секунд, прошедших с полуночи, как число с плавающей точкой (я думаю), поэтому вы хотите: gettimeofday(true)/(60*60*24). Умножьте на 100, чтобы получить процент.

РЕДАКТИРОВАТЬ: На самом деле, gettimeofday возвращает количество секунд, прошедших с начала эпохи, поэтому вам нужно вычесть полночь:

$midnight = strtotime('00:00');
$epochseconds = gettimeofday(true);
$timeofdayseconds = $epochseconds - $midnight;
$timepercent = $timeofdayseconds/(60*60*24)*100;
2 голосов
/ 27 мая 2018

Принятый ответ беспокоит меня по многим причинам, включая отношение к реальному календарю. Лично я бы, наверное, сделал это:

<?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" на что-то другое.

0 голосов
/ 26 января 2009

Я не знаю php, но есть ли какой-нибудь способ получить текущую дату, я думаю: P вы можете извлечь часы из этого или минуты, как точно вы хотите, чтобы это было? текущие минуты / 1440 * 100

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...