【发布时间】:2020-10-28 08:30:10
【问题描述】:
我使用countdown.js 并想将60 days 添加到date(数据取自数据库)。我在targetDay 中执行此操作,它工作正常,现在我想从现在开始计算这个日期,但它返回一个奇怪的日期"1969-11-05T21:24:07.416Z" 为什么?
const nowDate = moment();
const targetDay = moment('2020-10-24 14:25:26').add('60', 'days');
const countdown = moment(nowDate - targetDay);
console.log(countdown);
//const diff = targetDay.fromNow();
const count_days = countdown.format('D');
const count_hours = countdown.format('HH');
const count_minutes = countdown.format('mm');
const count_seconds = countdown.format('ss');
console.log(count_days + ' days:' + count_hours + ' hrs:' + count_minutes + ' m:' + count_seconds + ' s');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
我尝试了fromNow() 函数,但它返回string。我想做的是,从现在开始对目标日期进行倒计时。
【问题讨论】:
-
nowDate - targetDay等于-4855971015。将其传递给时刻可以追溯到 1970 年 1 月 1 日的约 56 天 -
moment()用于日期。moment.duration()是持续时间。您需要调整获取和使用countdown的方式。const countdown = moment.duration(nowDate.diff(targetDay)); -
@Ouroborus 你试过这个吗?不适合我!
-
当然,您需要进行进一步的调整,因为
.format()之类的内容不适用于持续时间。阅读the documentation 可能会有所帮助。 -
考虑到我的第一条评论正是在回答您提出的问题,这一切都很有趣:
it return an odd date "1969-11-05T21:24:07.416Z" why?无论如何,我不在乎代表,我也不是来贬低新手的.无论如何你都不是一个新手,你最早的 JS 问题是从大约三年前开始的。
标签: javascript momentjs