1

今日の時間の現在の経過時間のパーセンテージを取得しようとしています。これは、javascript または php のいずれかです。どうやってやるの ?

4

5 に答える 5

5

Dateオブジェクトといくつかの算術演算を使用します。現在の日のコンポーネントを同等の単位 (秒など) に変換し、それらの合計を見つけて、1 日あたりのその単位の数で割ります。

たとえば、次は 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 (1 日の秒数) で割り、もちろん 100 を掛けて 10 進数からパーセントにします。

于 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);
?>

これは、1 日が 86,400 秒である限り機能しますが、夏時間やうるう秒のために正しくない場合があります。

于 2012-06-08T21:05:25.110 に答える
1

現在時刻を 86400 で割り、その整数値に 86400 を掛けて、1 日の始まりに切り捨てます。次に、現在時刻の差 (もちろん秒単位) を取り、86400 で割ります。最後に100倍します。

編集:modはより効率的に機能します

擬似コード:

MidnightDays = (TimeInSeconds % 86400) * 86400;
Percentage = (TimeInSeconds - MidnightDays) / 86400 * 100;
于 2012-06-08T20:57:55.380 に答える