我试图获取今天时间的当前时间百分比。它可以是 javascript 或 php。我怎样才能做到这一点 ?
问问题
1100 次
5 回答
5
使用一个Date
对象和一些算术。将当天的组成部分转换为等效单位(例如秒),找到它们的总和,然后除以该单位每天的数量。
例如,以下是 JavaScript 中的解决方案。
var d = new Date();
var pctDayElapsed = (d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds() + d.getMilliseconds()/1000)/86400;
请注意,这种方法依赖于浏览器的本地化。您的结果将取决于浏览器的时区。
于 2012-06-08T20:58:54.867 回答
3
我会使用当前时间来计算今天已经过去的秒数,然后将其除以 86400(一天中的秒数),当然再乘以 100 即可将其从小数转换为百分比。
于 2012-06-08T20:58:17.337 回答
3
这是PHP中的答案:
$now=time();
$today=strtotime(date("m/d/Y"));
$seconds=$now-$today;
$day=24*60*60;//seconds in a day;
$percent=$seconds/$day*100;
或者
$hours=date('G')*60*60;
$minutes=date('i')*60;
$seconds=date('s');
$day=24*60*60;//seconds in a day;
$percent=($hours+$minutes+$seconds)/$day*100
于 2012-06-08T20:59:10.820 回答
3
<?php
$timestamp = time();
$hours = intval(date("G", $timestamp));
$minutes = intval(date("i", $timestamp));
$seconds = intval(date("s", $timestamp));
$proportion_elapsed = ($hours * 60 * 60 + $minutes * 60 + $seconds) /
(24 * 60 * 60);
printf("%0.4F of the day has elapsed.", $proportion_elapsed);
?>
只要一天有 86,400 秒,这就会起作用,由于夏令时或闰秒,这可能不是真的。
于 2012-06-08T21:05:25.110 回答
1
通过将当前时间除以 86400 向下舍入到一天的开始,然后将该整数值乘以 86400。然后取当前时间的差值(当然以秒为单位),然后除以 86400。最后,乘以 100。
编辑:mod 更有效地工作
伪代码:
MidnightDays = (TimeInSeconds % 86400) * 86400;
Percentage = (TimeInSeconds - MidnightDays) / 86400 * 100;
于 2012-06-08T20:57:55.380 回答