【问题标题】:What is the best format to send a JavaScript Date to PHP Backend?将 JavaScript 日期发送到 PHP 后端的最佳格式是什么?
【发布时间】:2018-04-30 13:22:21
【问题描述】:

我想发送设计 API 并将 Javascript Date() 对象(包括 Time )发送到 PHP 后端。 我现在有一个带时间戳的解决方案:

//Javascript
new Date().getTime()

返回一个数字,例如:1525094344392

然后我发送到我的 PHP 后端,它将其转换为 PHP 日期时间对象:

<?php
$date = new DateTime();

$date->setTimestamp(1525094344392 / 1000);

这可行,但没有设置时区,所以我想知道是否有更好的解决方案。我还没有找到一种简单的 Javascript 格式,PHP 和 Javascript 都易于理解。

请提供代码示例。

【问题讨论】:

  • 协调通用时间(UTC)
  • easily understand 是什么意思?到目前为止,时间戳是获取语言之间日期的最简单方法。但是,您似乎需要其他信息作为时区。所以......在继续之前 - 除了日期和时区之外,您还需要任何其他信息吗?我建议用这两个属性制作一个 JSON 对象...应该可以在语言之间正常工作!

标签: javascript php date datetime


【解决方案1】:

如果您将这些数据发送到世界各地,以便人们可以在不同的国家/地区查看它,如果代码将其转换回日期格式,它也会将其设置为他们的浏览器位置....https://www.w3schools.com/js/js_date_formats.asp 谈论这个。

在设置日期时,不指定时区,JavaScript 将 使用浏览器的时区。

获取日期时,不指定时区,结果为 转换为浏览器的时区。

换句话说:如果在 GMT(格林威治标准时间)中创建日期/时间 时间),日期/时间将转换为 CDT(美国中部夏令时) 时间),如果用户从美国中部浏览。

【讨论】:

  • Re "…它也会将其设置为他们的浏览器位置" 不正确。 ECMAScript Date 对象始终为 UTC,主机时区偏移量仅用于根据输入值创建 UTC 时间值,或根据基于内部 UTC 时间值的主机偏移量显示日期和时间。 Date 对象本身没有任何偏移信息,它只是 UTC。请不要引用 w3schools,该网站充满了错误和误导性陈述,您引用的几乎所有内容都是错误的。
猜你喜欢
  • 2016-08-02
  • 2012-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多