mfxhb
mfxhb
  • 发布:2022-10-26 15:33
  • 更新:2022-10-31 15:59
  • 阅读:274

Date实例的getDate()方法在unicloud上面到了第二天早上9.后才获取到正确的当月天数

分类:uniCloud

产品分类: uniCloud/App

示例代码:
    const nowdate = new Date();  
    // ! 需要更多参数可以在这里扩展  
    let value = {  
      month: nowdate.getMonth() + 1,// 当前月份  
      year: nowdate.getFullYear(),// 当前年份  
      time: nowdate.getTime(),// 当前的时间戳  
      day:nowdate.getDate(),// 当月天数 fix:24点过后第二天早上9点之前依然是前一天的天数  
      name,  
      price: Number(price.toFixed(2)),  
      type,  
      dianpu,  
      images: [],  
      other: {},  
    };

操作步骤:

const nowdate = new Date(); 在unicloud当中9.前使用getDate()是前一天的月份天数

预期结果:

9.前使用getDate()是当天的月份天数

实际结果:

9.前使用getDate()是前一天的月份天数

bug描述:

我早上9.(左右)之前录入数据时,时间戳已经到了今天的了,但是就是那个getDate()还是停留在了昨天,用的同一个实例Date,而且后面value对象我没有进行任何处理! 9.之后录入数据就没有问题!

2022-10-26 15:33 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

云端的时区是utc+0

mfxhb

mfxhb (作者)

getDate()我单独使用了下面这个来获取,目前没有问题

// 获取当前时间 fix:unicloud时区为utc+0  
exports.timeFix = function () {  
  try {  
    let timezone = 8; //目标时区时间,东八区  
    let offset_GMT = new Date().getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟  
    let nowDate = new Date().getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数  
    let targetDate = new Date(  
      nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000  
    );  
    return targetDate;  
  } catch (error) {  
    return new Date();  
  }  
};

该问题目前已经被锁定, 无法添加新回复