gpt4 book ai didi

javascript - 将 JavaScript new Date() 转换为 php DateTime()

转载 作者:可可西里 更新时间:2023-10-31 23:29:52 29 4
gpt4 key购买 nike

我在 HTML 中有 2 个字段:

<input id="datum" type="date">
<input id="uhrzeit" type="time">

JavaScript:

var datumUhrzeit = new Date($("#datum").val()+","+$("#uhrzeit").val());
console.log(datumuhrzeit);

"Tue Aug 18 2015 16:45:00 GMT+0200 (Mitteleuropäische Sommerzeit)"

如何将 PHP 中的“Tue Aug 18 2015 16:45:00 GMT+0200 (Mitteleuropäische Sommerzeit)”转换为 DateTime,以便将其保存到 postgresql?

最佳答案

您可以按如下方式从 Date 对象获取 unix 时间戳 (see Date.prototype.getTime)

var timestamp = '@' + Math.round(datumUhrzeit.getTime()/1000);

然后在服务器上发送时,只需创建新的日期时间对象

$datumUhrzeit = new DateTime($timestamp);

如果你不能使用 javascript 创建时间戳,而是直接从表单获取数据,你可以这样做,记得设置时区:

$datum = $_GET['datum'];
$uhrzeit = $_GET['uhrzeit'];
$datumUhrzeit = DateTime::createFromFormat('Y-m-d H:i:s', $datum . ' ' . $uhrzeit, new DateTimeZone('Europe/Berlin'));

现在您已经将日期保存到数据库并检索了它,您可以将其发回

print $datumUhrzeit->format('U'); // This will print the time as unix timestamp

之后,您将创建仅包含时间戳的 javascript 日期对象

var datumUhrzeit = new Date(timestamp * 1000); // timestamp from above

如果您出于某种原因不想使用 unix 时间戳,您可以使用格式化方法以所需的格式打印它。记得事先设置好时区

$datumUhrzeit->setTimezone(new DateTimeZone('Europe/Berlin'));
print $datumUhrzeit->format('Y-m-d H:i:s');

因为 javascript 不能很好地处理时区,所以我建议您尽可能使用 unix 时间戳。这样,时区问题就会减少。

关于javascript - 将 JavaScript new Date() 转换为 php DateTime(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210842/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com