0点后我执行云函数获取日期时间
const nowdate = new Date() // 当前时间
const y = nowdate.getFullYear(),
m = nowdate.getMonth() + 1,
d = nowdate.getDate(); // 获取到的日期却是昨天的
但是new Date().getTime() // 这样获取到带小时分钟秒钟的时间戳却是准的
然后我通过new Date('2023/1/15').getTime() 等等方法想获取该日期的零点整的时间戳,但是得到的都会加了8小时的时间戳
但是我在EMAS云函数却找不到不知道在哪里进行设置
......在云函数中通过
获取到的时间戳都加了8小时
开发者您好,感谢您对EMAS Serverless的关注,当前云函数暂不支持设置时区,默认为UTC+0,这也导致您遇到了这两个问题:
d = nowdate.getDate(); // 获取到的日期却是昨天的
在0点后执行该代码时,获取到的日期字符串仍然是“昨天”。
new Date('2023/1/15').getTime()
当您执行这段时,获取到的自然也是UTC+0地区的1月15日零点,此时北京是8点。
方案: 目前较好的方法就是-8小时,例如
Date.prototype.minusHours = function(h) {
this.setTime(this.getTime() - (h*60*60*1000));
return this;
}
let expected = new Date("2023/1/15").minusHours(8).getTime();
方案:获取UTC+0的日期之后再加上8小时
Date.prototype.addHours = function(h) {
this.setTime(this.getTime() + (h*60*60*1000));
return this;
}
let expected = new Date().addHours(8);
const y = expected.getFullYear(),
m = expected.getMonth() + 1,
d = expected.getDate();
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。