本质上我有两个unix时间戳,代表给定月份的第一天和最后一天。是否可以以编程方式确定上个月第一个月和最后一个月的时间戳?
例如,我有以下两个时间戳:
1467331201
--> 2016 年 7 月 1 日
1469923201
--> 2016 年 7 月 31 日
本质上,我可以以一致的方式操作这两个数字,以便分别获得 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));
关于javascript - 如何根据 Javascript 中的 unix 时间戳以编程方式确定先前的时间段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38963826/