本质上,我有两个unix时间戳,分别代表给定月份的第一天和最后一天。是否可以以编程方式确定上个月的第一天和最后一天的时间戳?
例如,我有以下两个时间戳:
1467331201
-> July 1, 2016
1469923201
->July 31, 2016
本质上,我能否以一致的方式操作这两个数字,以分别获得2016年6月1日和2016年6月30日的unix时间(或Date对象)?我遇到的问题是您不能简单地减去给定的金额,因为一个月中的天数是可变的。
您可以使用以下功能:
function getPreviousMonthRange(unixTime) {
var dt = new Date(unixTime * 1000);
dt.setUTCDate(0); // flips to the last day of previous month
var unixLast = dt.getTime();
dt.setUTCDate(1); // back to the first day of that same month
var unixFirst = dt.getTime();
return [unixFirst / 1000, unixLast / 1000];
}
// given first and last date (only one is really needed)
var unixTimeFirst = 1467331201;
var unixTimeLast = 1469923201;
// get previous month's first & last date
var [first, last] = getPreviousMonthRange(unixTimeFirst);
// output
console.log('previous month first day: ', first, new Date(first*1000));
console.log('previous month last day: ', last, new Date(last*1000));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句