【发布时间】:2020-11-27 03:29:08
【问题描述】:
我正在尝试实现一个简单的事件倒计时功能,该功能将在事件中显示days、hours、minutes 和seconds。
为此,我正在尝试使用moment.js
目前,写这篇文章的时间是2020年8月6日20:43。活动于2020年9月7日13:00开始。
我正在尝试计算当前时间与事件开始日期和时间之间的日期和时间差(你知道它是如何工作的)。
但是,按照我目前的方法,日期差异表明现在和 9 月 7 日之间有 28 天的差异,这是不正确的,应该是 32。
此外,正如您将在下面的标记中看到的那样,我的数字(天、小时、分钟和秒)被分成单独的 div 元素。我见过this example,它显示了倒计时功能。
但是,上面的示例使用单个 div (.countdown)。当它们位于单独的 div 中时,是否仍有可能具有倒计时功能?如果有,怎么做?
我目前的做法:
$(function() {
var eventTime = 1599483600000; // Timestamp for 07-Sep-2020 13:00:00 GMT+0000
var currentTime = new Date();
var diffTime = eventTime - currentTime;
var duration = moment.duration(diffTime*1000, 'milliseconds');
var interval = 1000;
duration = moment.duration(duration - interval, 'milliseconds');
var days = duration.days();
var hours = duration.hours();
var minutes = duration.minutes();
var seconds = duration.seconds();
console.log("Days: " + days + ", Hours: " + hours + ", Minutes: " + minutes + ". Seconds: " + seconds);
var days_div = document.querySelector ('#countdown__days span');
var hours_div = document.querySelector ('#countdown__hours span');
var minutes_div = document.querySelector ('#countdown__minutes span');
var seconds_div = document.querySelector ('#countdown__seconds span');
days_div.innerHTML = days_div.innerHTML + days;
hours_div.innerHTML = hours_div.innerHTML + hours;
minutes_div.innerHTML = minutes_div.innerHTML + minutes;
seconds_div.innerHTML = seconds_div.innerHTML + seconds;
});
.countdown{
display: flex;
}
.countdown .countdown__item{
padding: 0px 20px;
border-right: 2px solid blue;
text-align: center;
align-items: center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js" integrity="sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx/qtq/1itJ0C2ejDxltZVFg==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<div class="countdown">
<div id="countdown__days" class="countdown__item">
<span class="number"></span>
<p>Days</p>
</div>
<div id="countdown__hours" class="countdown__item">
<span class="number"></span>
<p>Hours</p>
</div>
<div id="countdown__minutes" class="countdown__item">
<span class="number"></span>
<p>Minutes</p>
</div>
<div id="countdown__seconds" class="countdown__item">
<span class="number"></span>
<p>Seconds</p>
</div>
</div>
【问题讨论】:
标签: javascript html jquery momentjs