我想制作一个js函数。当我输入年和月号时,如果该月有黑色星期五,它将返回true。 有没有任何simlar moment.js方法或函数来做到这一点? THX。
答案 0 :(得分:2)
您可以使用moment({unit: value, ...});
创建表示给定月份的第13个的时刻对象,然后您可以使用day()
获取星期几。正如docs所说:
此方法可用于设置星期几,星期日为0,星期六为6。
所以你可以检查day()
是否等于5(星期五)。
这是一个工作示例:
function hasBlackFriday(year, month) {
return (moment({y: year, M: month, d: 13}).day() === 5);
}
// Test foreach month of 2017
for(var i=0; i<12; i++){
console.log(hasBlackFriday(2017, i));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
请注意,正如moment({unit: value, ...});
文档所说:
请注意,与
moment(Array)
和new Date(year, month, date)
类似,索引为0个月。
正如Matt Johnson在评论中强调的那样,您也可以使用本机JavaScript Date对象获得相同的结果,这里有一个示例:
function hasBlackFriday(year, month) {
return (new Date(year, month, 13).getDay() === 5);
}
// Test foreach month of 2017
for(var i=0; i<12; i++){
console.log(hasBlackFriday(2017, i));
}
答案 1 :(得分:0)
此函数返回给定月份m
和年y
的上周五的日期。
function hasBlackFriday(y, m) {
var date = moment(new Date(y, m - 1, '1'))
result = date.endOf('month');
while (result.day() !== 5) {
result.subtract(1, 'day');
}
return result;
}
console.log(hasBlackFriday(2017, 4).format('M DD YY'))