基于碳日期的准确日期格式

问题描述

我一直在尝试解决从 Amazon API 保存的数据库数据的问题。数据是使用 cron 作业获取的,预定义的日期范围从上一年到 2021 年 6 月。 我的问题是,我无法使用 Laravel 碳日期获得准确的结果。我不确定我到底做错了什么。在某些日期范围内,我可以获得准确的结果,但是当我更改日期时,结果不正确。因此,例如,当我查询 6 月 1 日至 6 月 30 日的数据时,我可以获得确切的结果,并且可以通过使用相同的日期范围比较结果来确认,当我直接从 Amazon API 获取数据时,但是当我更改它时假设到 6 月 5 日至 6 月 22 日,结果不再准确。我怀疑这是因为我使用了错误的日期格式,但老实说我不知道​​要使用的正确格式。我尝试了很多格式,但都失败了。这是从亚马逊返回的示例日期格式

  1. 2021-06-18T14:35:33+00:00
  2. 2021-06-18T15:08:11+00:00

认情况下,laravel 的时区在配置文件中全局使用 'timezone' => 'UTC'。 我的用户住在德国柏林,所以我在查询数据库时使用 Europe/Berlin

我尝试了以下方法

          $start = Carbon::parse("$from Europe/Berlin")->tz('UTC')->format('Y-m-d H:i:s');
          $end = Carbon::parse("$to Europe/Berlin")->endOfDay()->tz('UTC')->format('Y-m-d H:i:s');

然后我用它来查询表,类似

          ->whereBetween('purchase_date',[$start,$end])

我也尝试格式化从亚马逊返回的日期

   Carbon::parse($value['date'])->format('Y-m-d H:i:s')  

并尝试按原样保存(意思是只保存到字段,字段类型是日期时间)

我的问题是,

  1. 如何使用 laravel carbon 格式化日期以获得准确的结果
  2. 目前我的用户居住在柏林/德国,如果添加了来自不同地点和时区的用户,您如何动态调整日期格式?
  3. 用户的日期(timepicker)基于本地日期,这可能是我无法获得准确结果的原因吗?

更新:

在比较了 2020-2021 年的月度时间范围(前 --month=June --year=2021 ,--month=march --year=2020)后,我注意到 2020 年和 2021 年的六月有不一致的结果。其他月份完全没问题。这让我再次困惑。

解决方法

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...