如何使用时间将时间四舍五入到最近的四分之一小时

时间:2019-10-09 18:05:33

标签: angular momentjs angular-moment

我正在尝试创建一个每天间隔15分钟的小时数组,以获取世界标准时间(UTC)时间的气象卫星图像。

示例:["2019_10_09_17_00", "2019_10_09_17_15", "2019_10_09_17_30"]

问题是分钟数不合适["2019_10_09_17_09", "2019_10_09_17_24", "2019_10_09_17_39"]

我不希望像17001709那样适合1714,因为如果分钟不适合,天气卫星图像将无法加载! 。

代码

 // YYYY_M_DD_hh_mm

    const now = moment();

    const timeStops = [];

    for (let i = 0; i < 3; i++) {
      now.add(15, 'minutes');
      timeStops.push(now.utcOffset(-1).format('YYYY_M_DD_HH_mm'));
    }

    console.log(timeStops);

请问有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您真的不需要花时间去做。只需生成所有分钟和小时,然后合并为一组日期即可。

const pad = v => v < 10 ? '0' + v : v;
const minutes = [0,15,30,45];
const hours = Array(24).fill(0).map((x,indx) => indx);
const hoursMinutes = hours.flatMap(h => minutes.map(m => [h,m].map(pad)));
const dates = hoursMinutes.map(([h,m]) => `2019_10_9_${h}_${m}`);
console.log(dates);