我正在开展一个项目,在这个项目中,我需要查找哪些日子是假期,并显示这些假期的具体消息。
有些假期,比如圣诞节,就在十二月二十五日。但是对于其他假期,例如感恩节,它有点棘手,因为它是11月的第四个星期四。
我使用的方法是在哪一周分裂。
<div id="wrapper">
<!--60% width-->
<header>
<div id="logo" class="logo">
<h1>This is where the logo will be</h1>
</div>
<!--50% centred-->
<div id="nav">
<!--50% width centred-->
<ul>
<li><a href="#">Home</a>
</li>
<li><a href="#">About</a>
</li>
<li><a href="#">News</a>
</li>
<li><a href="#">Contact</a>
</li>
<li><a href="#">Blog</a>
</li>
</ul>
</div>
</header>
<div id="left_page" class="columns">
<h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2>
</div>
<div id="right_page" class="columns">
<h2>Sed efficitur consequat massa ut sagittis.</h2>
</div>
<div id="centre_block">
<h1>Sed dapibus dapibus lectus in auctor.</h1>
</div>
<footer>
<h3>This will be the footer</h3>
<p>This is where © Copyright information goes</p>
</footer>
</div>
今天恰好是哥伦布日,所以根据我所拥有的,它应该是&#39; 10/2/1&#39;。第10个月,第2周,第1天。 (10/12)。我得到的问题是,我现在正在度假2,我得到了:
day = moment()
month = day.month() + 1
weeknum = Math.floor((day - 1) / 7) + 1
holiday2 = month + "/" + weeknum + "/" + day
所以......我从技术上知道我已经接近了,因为我看到了&#39; 10/2/1&#39;但我的异常数字非常大。
我的问题是2折。我如何压缩这些数字,以便不是得到10位数的响应,而是只得到我需要的1或2位数字?
有没有更好的方法来解决这个问题?
答案 0 :(得分:2)
moment()
返回日期对象。您需要获得类似于您已经获得月份的日期。 You can do this using .date()
day = moment();
month = day.month() + 1;
date = day.date();
weeknum = Math.floor((date - 1) / 7) + 1;
holiday2 = month + "/" + weeknum + "/" + date;
由于日期转换为整数的方式,您当前的解决方案无效。具体来说,它们存储为number of milliseconds since 1970/01/01。
This answer建议获得周数的最佳方式:
var weeknum = Math.ceil(date / 7);