Moment.js - 如何仅显示每个“下周四”

时间:2016-03-22 14:06:33

标签: date momentjs

我想在网页上显示日期。只显示下周四下午6点太平洋标准时间。

因此,无论访问者何时或何时访问该页面,他们都应该看到下周四下午6点太平洋标准时间出现。

我怎么能用Moment.js做到这一点?

另外,有没有办法将倒数计时器与moment.js集成起来,这样访问者总能看到时间倒计时到那一刻?

谢谢!

1 个答案:

答案 0 :(得分:0)

这需要一点思考,并且需要使用时刻时区,因为无论用户身在何处,您都想知道America / Los_Angeles的时间。步骤是:

  • 现在在America / Los_Angeles创建时刻
  • 使用setter将本周四的时间明确设定为下午6点
  • 检查现在是否在该日期之前
  • 如果是这样,价值就是本星期四。
  • 如果没有,价值是七天后

代码:

var thisThursday = moment().tz('America/Los_Angeles').isoWeekday(4).hour(18)
                     .minute(0).second(0).millisecond(0);

var date = (thisThursday.isSameOrAfter(moment())) ? thisThursday 
              : thisThursday.add(7, 'days');

请注意,date仍在America / Los_Angeles时区。如果要在用户的本地时间显示它,可以将它的值传递回新的时刻:

moment(date.valueOf())

要做你的倒数计时器,我会看一下当下倒计时的内容:https://github.com/icambron/moment-countdown