社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MySQL和PHP UTC时间在数字格式时不同

Soulss • 3 年前 • 1248 次点击  

我正在尝试建立一个登录系统,为了重置密码或确认帐户,我有一个带有“过期日期”的列,为了让过期在任何地方都有效,我将存储在UTC时间。但我遇到了一些非常奇怪的事情。当我拿到 格式化 来自SQL和 格式化 来自PHP的UTC时间,两者都是相同的。但当我进去的时候 数字 (我不知道这种格式的真实名称是什么)它们的差别正好是7200(相当于2小时的差别)。如果有人知道为什么会这样?谢谢

下面是我用来调试的代码:

<?php

$con = mysqli_connect('localhost', 'root', '', 'clients');

updateUserUTCTime($con, 3);
$user = getUserAssocArray($con, 3);

echo $user['date_utc'];
echo '<br>';
echo gmdate("Y-m-d H:i:s", time());
echo '<br>';
echo '<br>';
echo strtotime($user['date_utc']);
echo '<br>';
echo gmdate(time());
echo '<br>';
echo '____________';
echo '<br>';
echo strtotime($user['date_utc']) - gmdate(time());

function updateUserUTCTime($con, $id=1){
    $query = '
    update datetests 
    set date_utc = UTC_TIME()
    where id = '.$id.'
    ;';

    return mysqli_query($con, $query);
}

function getUserAssocArray($con, $id=1){
    $query = 'select * from datetests where id = '.$id.';';
    $result = mysqli_query($con, $query);
    $result = mysqli_fetch_assoc($result);
    return $result;
}

输出(在我运行代码时)是:

2021-09-23 09:54:06
2021-09-23 09:54:06

1632383646
1632390846
____________
-7200

请注意,当格式化时,它们是相同的,但如果不是,它们会有7200个单位的差异。。。

附言: 在数据库中,我使用“DATETIME”类型来存储UTC_时间。 我使用以下函数获取每种语言的UTC时间:

gmdate(time()) -> PHP

UTC_TIME() -> MySQL

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133892
 
1248 次点击  
文章 [ 1 ]  |  最新文章 3 年前