gpt4 book ai didi

php - 从当前时间戳默认获取日期时间

转载 作者:行者123 更新时间:2023-11-29 22:19:10 26 4
gpt4 key购买 nike

当用户首次创建帐户时,默认情况下会将当前时间戳放入时间戳类型的“日期”字段中。

如果字段类型为“datetime”,它不允许我将默认值设置为当前日期时间。我只能用“时间戳”来做到这一点。

但现在我需要使用 date_diff() ,它需要日期时间格式。有没有办法将时间戳结果转换为日期时间,以便我可以将其放入 date_diff 中?

我可以手动返回到创建新帐户的每个页面并使其找到当前日期,然后将其放入日期时间字段中,但这显然会增加大量工作(如果需要,我会这样做) )。

实际上没有任何代码可以显示。这是我从数据库获取值的地方(函数发送查询“SELECT date FROM user_login WHERE username = $username”):

$udate = get_value("user_login", "date", "username", $_SESSION['user']['username']);

返回的值是日期和时间,但不是日期时间格式。所以当我尝试以下操作时:

date_diff($udate, date(Ymd), true);

它给出了错误

date_diff() expects parameter 1 to be DateTime, string given

最佳答案

It won't allow me to make the default value the current datetime if the field type is "datetime". I can only do that with "timestamp".

MySQL 将允许您指定一个 DATETIME 字段,默认值为 NOW()。 MySQL 会将其转换为 CURRENT_TIMESTAMP

然后,当创建用户时,MySQL 会自动将 CURRENT_TIMESTAMP 插入到您的 date 字段中。

MySQL Date and Time Functions NOW()

<小时/>

编辑:

您的问题似乎出在 date_diff 本身。您必须以 DateTime 类型提供前两个参数,但 MySQL 数据库中的时间戳表示形式是 string。创建一个 DateTime 对象并将其作为参数传递:

$udate = new DateTime(get_value("user_login", "date", "username", $_SESSION['user']['username']));
$now = new DateTime();

$diff = date_diff($udate, $now, true);

// Will spit out difference in days
echo $diff->format('%d days');

关于php - 从当前时间戳默认获取日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30920088/

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