JavaScript倒计时与年,月,日

javascript countdown with year , month , day

本文关键字:倒计时 JavaScript      更新时间:2023-09-26

我正在尝试用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天。二月更糟,包含 28 天,每 4 年(闰年)增加一天。显示"年"的数量将不那么繁重,但仍有闰年需要应对。

因此,没有任何简单的方法来精确计算它们。

对于演示计算年、月和周的代码,查看此页面:
http://blog.refoua.me/post/day-counter/?lang=en

虽然它不是一个简单的,但它可以尽可能精确地工作和计算单位。