2

javascriptでカウントダウンを作ろうとしています。ただし、私のカウントダウンは、日、時間、分、および秒しか計算できません。年月も表示したいです。

以下は私のコードです:

<script type="text/javascript">

        today = new Date();

        BigDay = new Date("December 25, 2016");
        msPerDay = 24 * 60 * 60 * 1000;
        timeLeft = (BigDay.getTime() - today.getTime());
        e_daysLeft = timeLeft / msPerDay;
        daysLeft = Math.floor(e_daysLeft);
        e_hrsLeft = (e_daysLeft - daysLeft) * 24;
        hrsLeft = Math.floor(e_hrsLeft);
        minsLeft = Math.floor((e_hrsLeft - hrsLeft) * 60);
        // $("#countdown").append("There are only<BR> <H4>" + daysLeft + " days " + hrsLeft + " hours and " + minsLeft + " minutes left </H4> Until December 25th 2020<P>");
        document.write(daysLeft + " days " + hrsLeft + " hours" + minsLeft + " minutes");

</script>

出力したい:

x年、yか月、z残り日数。

4

2 に答える 2

4

あなたは正しい軌道に乗っています。365 を超える場合は日を 365 で割り、365 を法として daysLeft を実行するのと同じ方法に従ってください。

(正確ではありませんが、単純なものであり、正確にするために単位が必要ない場合に使用できます。)

すなわち

var today = new Date();

var BigDay = new Date("December 25, 2018");
var msPerDay = 24 * 60 * 60 * 1000;
var timeLeft = (BigDay.getTime() - today.getTime());
var e_daysLeft = timeLeft / msPerDay;
var daysLeft = Math.floor(e_daysLeft);
var yearsLeft = 0;
if (daysLeft > 365) {
  yearsLeft = Math.floor(daysLeft / 365);
  daysLeft = daysLeft % 365;
}
var e_hrsLeft = (e_daysLeft - daysLeft) * 24;
var hrsLeft = Math.floor(e_hrsLeft);
var minsLeft = Math.floor((e_hrsLeft - hrsLeft) * 60);
document.write(yearsLeft + " years " + daysLeft + " days " + hrsLeft + " hours " + minsLeft + " minutes");

于 2012-06-20T03:53:38.037 に答える
1

月には、実際にはさまざまな日数が含まれています。30日もあれば、31日もあります。2月はさらに悪く、28日で、4年(うるう年)ごとに1日が追加されます。「年」の数を表示することはそれほど面倒ではありませんが、まだ閏年と戦う必要があります。

したがって、それらを正確に計算する簡単な方法はありません。

年、月、週の計算を示すコードについては、次のページを確認してください: http:
//blog.refoua.me/post/day-counter/?lang=en

単純なものではありませんが、可能な限り正確に動作し、単位を計算します。

于 2012-08-01T14:42:45.290 に答える