【问题标题】:How to get this format moment().format('YYYY-MM-DD\THH:mm:ssZ') javascript in php?如何在 php 中获取这种格式 moment().format(\'YYYY-MM-DDTHH:mm:ssZ\') javascript?
【发布时间】:2022-09-22 22:59:20
【问题描述】:

我希望从 php 中的 javascript 实现相同的日期格式:

moment().format(\'YYYY-MM-DD\\THH:mm:ssZ\');

输出:2016-12-24T13:46:43-05:00

我试图得到相同的结果,但我只得到以下结果:

$date = new DateTime();
echo $date->format(\'Y-m-d\\TH:i:s-ssZ\');

输出:2022-09-22T14:42:28-28280

我不知道程序是否正确,但我想获得相同的 javascript 日期格式,但在 PHP 中,我应该在我的代码中添加哪些更改?

  • 该过程是正确的,您只需要不同的格式标记。 php.net/manual/en/datetime.format.php 列出了您可以使用的内容。 s 是秒,它与时区偏移无关。
  • @ADyson 所以它会是这样的:echo $dt->format(\'Y-m-d\\TH:i:s-s-s\'); 但是输出很奇怪:2022-09-22T14:56:15-15-15 这重复了很多:15-15-15
  • 不,不是那样的。你为什么一直重复秒数?阅读文档,以及我在下面的答案。
  • 是的,我有一个想法。再次阅读文档和我在下面的答案,两者都清楚地解释了它。
  • -ssZ - 你对那部分有什么期望?

标签: javascript php date datetime momentjs


【解决方案1】:

该过程是正确的,您只需要不同的格式标记。 documentation for DateTime::format 列出了您可以使用的内容。

在这种情况下,您可以使用 P - 文档说:

与格林威治时间 (GMT) 的差异,小时和分钟之间带有冒号 例如:+02:00

echo $date->format('Y-m-d\TH:i:sP');

演示:https://3v4l.org/PjI5m

注: s 是秒,它与时区偏移无关,所以我不确定你为什么使用它,特别是当你已经用它在相同的格式字符串中显示秒数时(因此明确表示它有不同的目的)。请记住,PHP 的日期格式化标记与 momentJS 使用的不同。

【讨论】:

  • 我们如何将 + 替换为 -?从此:2022-09-22T16:56:22+02:00 给这位朋友:2022-09-22T16:56:22-02:00
  • 您不想这样做,因为带有- 的版本比带有+ 的版本早4 小时。同样,我认为问题的根源在于您实际上并不了解您正在使用的数据。
  • 这取决于时区。你不需要更换它。使用 Javascript 时,它使用的是您计算机的本地时区,但在服务器上(如果服务器不是您的计算机),您可能有不同的时区。
  • @ADyson我希望没有问题,我会尝试使用这个输出,否则我会再次评论,不是我不明白,我只是想拥有相同的javascript格式,以免在签名时出现问题xml 文件。谢谢 :)
  • I just wanted to have the same javascript format...现在你做到了。 it is not that I do not understand...你确定吗?无意冒犯,但我认为如果您了解您正在查看的数据是一个时区偏移量,并且您了解其中一个是如何工作的,那么您就不会要求交换 +-,因为您会知道它们的意义。 :-)
猜你喜欢
  • 2019-07-28
  • 1970-01-01
  • 2014-06-07
  • 1970-01-01
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多