我需要使用moment.js获取“8月1日”的日期;因为其中没有“先前”的方法,怎么做?
答案 0 :(得分:2)
据我所知,目前还没有任何内容(尚未)。有一些关于在GitHub issue前后做类似事情的喋喋不休。
所以你可能需要自己做。
去年8月要么是今年,要么是8月之后或去年之前,如果是之前的话。您可以简单地测试它并采取相应的行动。所以去年八月是2017年:
let aug = moment("08-01", "MM-DD")
let lastAug = aug < moment() ? aug : aug.subtract(1, 'years')
console.log("Last August: ", lastAug.format("dddd DD-MM-YYYY"))
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
然而,去年2月是2018年。
let feb = moment("02-01", "MM-DD")
let lastfeb = feb < moment() ? feb : feb.subtract(1, 'years')
console.log("Last February: ", lastfeb.format("dddd DD-MM-YYYY"))
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
答案 1 :(得分:1)
你可以使用{j}的subtract()
方法
var now = moment().format("dddd DD-MM-YYYY");
var previous = moment().subtract(1, 'years').format("dddd DD-MM-YYYY");
document.write(now+"<br/>"+previous);
&#13;
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
&#13;
答案 2 :(得分:0)
下面的代码将找到今年第一个八月。如果当天还没有发生,那么它将返回上一年的第一个八月。
var thisYear = (new Date()).getFullYear();
var lastAugust = new Date("8/1/" + thisYear);
if(moment() < lastAugust)
lastAugust = new Date("8/1/" + (thisYear - 1));
var result = moment(lastAugust.valueOf()).format("dddd DD-MM-YYYY");
document.write(result);
&#13;
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
&#13;