繁体   English   中英

javascript倒计时,包括年,月,日

[英]javascript countdown with year , month , day

我正在尝试用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天。

您走在正确的轨道上。 只需采用相同的方法将天数除以365(如果超过365)并进行daysLeft模365。

(尽管它不是精确的,但这是一个简单的方法,如果不需要精确的单位,则可以使用它。)

 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"); 

月份实际上包含不同的天数。 有些是30天,另一些是31天。2月甚至更糟,其中包含28天,每4年(le年)增加一天。 显示“年份”的数字不会那么麻烦,但是仍然有很多leap年需要应对。

因此,没有任何简单的方法可以准确地计算出它们。

有关演示年份,月份和星期的代码,请查看以下页面:
http://blog.refoua.me/post/day-counter/?lang=en

尽管这不是一个简单的方法,但是它可以工作并尽可能精确地计算单位。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM