【问题标题】:Date is wrong when JS passed a Date in PHPJS在PHP中传递日期时日期错误
【发布时间】:2019-03-11 09:42:42
【问题描述】:

我使用的是 Laravel 5.7,我在将日期字符串从 JS 传递到 PHP 时遇到问题。

在我通过 Vue JS 中的日期并输入 console.log() 以查看实际值之前,我有这个:

Fri Feb 01 2019 00:00:00 GMT+0800 (Philippine Standard Time)

然后当我将它接收到 Laravel 控制器时,我 \Log::info() 显示正在接收的值,但我有这个:

2019-01-31T16:00:00.000Z

有人遇到过同样的问题并设法解决了吗?请帮忙

【问题讨论】:

  • 你能分享更多细节吗?你如何将数据发送到后端?您是否以某种方式解析或操纵它?通常,字符串是字符串,不应以这种方式更改。此外,您真正的问题是什么?
  • 如下所示,这些日期是相同的,只是显示了不同的时区。牢记这一点,您面临什么问题?
  • Fri Feb 01 2019 00:00:00 GMT+0800 (Philippine Standard Time)2019-01-31T16:00:00.000Z 的时间点完全相同……一个是菲律宾标准时间,另一个是UTC
  • @NicoHaase 我使用 axios post 传递了它

标签: javascript php date laravel-5 vuejs2


【解决方案1】:

这不是不同的日期,只是将日期转换为字符串时的 ISO 格式。

您可以使用 new Date() 再次创建日期对象

let date = new Date()
console.log(date)
console.log(date.toString())
let date2 = new Date(date.toString())
console.log(date2)

【讨论】:

  • 你建议改变什么?
  • 有什么问题?不问转换格式有什么问题。
  • 我遇到的问题是当日期在控制器中传递时,它将是一月(2019-01-31T16:00:00.000Z)而不是二月
  • 现在是同一个日期时间,你已经有很多人告诉你了。
  • @Imperatura 如果需要,您必须在代码中管理时区偏移量。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多