gpt4 book ai didi

PHP : Setting timezone for date

转载 作者:行者123 更新时间:2023-11-28 23:41:04 24 4
gpt4 key购买 nike

我正在为 php 节省登录时间。这是我用来为每次登录保存值(value)的东西

$update= mysqli_query($connection, "UPDATE employees set loggedin= now() WHERE email = '$email'");       

当我从

获取值时
  $logintime_query=  mysqli_fetc h_assoc($logintime);
$loggedin_time_converted= explode(" ",$logintime_query) ;

$converted_time= $loggedin_time_converted['0'];
$converted_date= $loggedin_time_converted['1'];

现在我必须将这个日期与今天的日期进行比较,以获得今天的日期我正在使用它

$today=  $_SERVER['REQUEST_TIME'];
echo(date("Y-m-d",$today));

现在的问题是 $_SERVER['REQUEST_TIME] 给我这个日期

2015-12-21

当我使用 NOW() 输入日期并从数据库中检索它时,这就是我得到的

2015-12-20

是时区问题还是什么?我的时区是 utc+4(迪拜)所以我试着这样设置

date_default_timezone_set('Asia/Dubai');

但这行不通,请帮我解决这个问题

最佳答案

时区复杂而困惑。例如,这里您的问题不仅与 PHP 时区设置有关,还与您的 MySQL 时区有关,因为您在那里存储时间戳并尝试在 PHP 中再次使用它们。

为传输输入 Unix 时间戳

传输所有这些时间戳的更好、更有效的方法是,当你从 MySQL 到 PHP 或 PHP 到 MySQL 或 PHP 到 Javascript 或 Javascript 到 PHP 时,你不必担心时区转换,就是在需要传输时间的任何地方都使用 Unix 时间戳。

$logintime =  mysqli_query("SELECT UNIX_TIMESTAMP(loggedin) as loggedin FROM employees WHERE email = 'josh@foobar.baz'");

现在当你想在 PHP 中比较它时,你只需做...

if ($logintime['loggedin'] > time()) {
/* ... do stuff ... */
}

从 PHP 回到 MySQL 就这么简单...

$t = time();
$logintime = mysqli_query("UPDATE employees SET loggedin = FROM_UNIXTIMESTAMP($t) WHERE email = 'josh@foobar.baz'");

方便多了,而不必担心您是否在不同地方正确设置了时区,并希望您在此过程中的某个地方没有犯一个简单的错误稍后弄乱你的结果。

关于PHP : Setting timezone for date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34383930/

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