由moment.js utc方法感到困惑

问题描述

在我的数据库中,有一个表包含一个名为receivedAt的表,该表中的日期都像2020-09-09 22:25:30.8266667 +00:00一样存储在UTC中

在前端,我想获取日期范围从2020-10-29 00:00:00到2020-10-29 23:59:59 pm的所有数据。

我的浏览器处于“美国/多伦多”时区偏移:-4小时。为了在数据库中正确过滤数据,我需要将在浏览器中选择的日期范围从本地时区(美国/多伦多)转换为UTC时区,然后将其发送到后端。

在前端,我尝试了几种不同的方法:

  1.    startDate: moment().startOf("day").format(); 
       endDate: moment().endOf("day").format();
    
       startDate: 2020-10-29T00:00:00-04:00;
       endDate: 2020-10-29T23:59:59-04:00;
    
  2.    startDate: moment().utc().startOf("day").format(); 
       endDate: moment().utc().endOf("day").format();
    
       startDate: 2020-10-29T00:00:00Z;
       endDate: 2020-10-29T23:59:59Z;
    
    
  3.   startDate: moment().startOf("day").toISOString();
      endDate: moment().endOf("day").toISOString();
    
      startDate: 2020-10-29T04:00:00.000Z;
      endDate: 2020-10-30T03:59:59.999Z;
    
  4.   startDate: moment().utc().startOf("day").toISOString();
      endDate: moment().utc().endOf("day").toISOString();
    
      startDate: 2020-10-29T00:00:00.000Z;
      endDate: 2020-10-29T23:59:59.999Z;
    

在上述4种方法中,方法1和方法3有效,而方法2和方法4不起作用。 我很困惑,因为我需要将本地时区转换为utc。为什么当我向方法中添加utc()却无法正常工作时?另外,为什么我只使用format()toISOString()方法,似乎将我的本地时区转换为utc。

有人知道答案吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...