gpt4 book ai didi

php - DateTime类创建的时间对象是否受用户机器本地时间的影响?

转载 作者:行者123 更新时间:2023-11-29 15:37:18 24 4
gpt4 key购买 nike

我在数据库的某个表中有一个时间戳列来跟踪插入的时间,它的 SQL 就像

reg_date TIMESTAMP

因此,当我向表中插入一些数据时,它会获取时间并将其放入 reg_date 列中

假设我在表中插入了一个重置​​密码请求 id,并在重置页面中检查表中的时间与用户使用该 id 重置密码的时间之间的时间差异

那么,问题是:如果用户的本地时间落后或晚于服务器的时间,这会影响时间差异还是使用 DateTime 类时服务器生成当前时间?

最佳答案

仅当您直接通过 GET\POST 请求发送客户端的机器时间,然后将其作为 DateTime 对象的参数传递时,客户端的机器时间才会影响您的服务器端数据。否则,php 脚本从其运行的服务器获取日期、时间和时区。

大多数网络服务器都设置为 UTC 时区(这也是在数据库中存储日期时间记录的好习惯),但我建议检查这是否适合您的服务器。

<?php

// This var contains only server time
$serverDataTime = new \DateTime();

try {
$userTimeZone = new \DateTimeZone($_POST['timezone_from_client']);
// this one depends on what was received from the client
$userDateTime = new \DateTime( $_POST['date_time_from_client'], $userTimeZone );
} catch ( Exception $e ) {
// wrong input
}

手册:PHP DateTime

关于php - DateTime类创建的时间对象是否受用户机器本地时间的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58111544/

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