gpt4 book ai didi

Php Mysql 数据库中的日期和时间 - 刚刚获取 0 或 1970

转载 作者:行者123 更新时间:2023-11-30 00:07:51 36 4
gpt4 key购买 nike

我真的很苦恼,希望有人能给我一些建议。

我正在编写一个简单的基于 Web 的系统,由 PHP 和 Mysql 数据库组成。我尝试了很多方法来实现我想要的但没有成功。我想要做的只是将日期时间与每条记录一起存储在数据库中,并能够计算该记录的有效期为 30 天。

我不知道问题是由于参数化 mysql 绑定(bind)还是其他我做错的事情造成的。

问题1:

将记录日期存储在mysql中作为DATETIME字段。但是 PHP 的 strToTime() 函数似乎无法理解存储的日期时间 - 它总是返回 0 或 1970!我在数据库中存储的所有内容都来自 Php 的 Time() 函数。如果我直接在页面上显示该值,它确实是一个日期 - 所以我无法理解为什么 strToTime() 失败。

问题2:在上面花了几个小时之后,我尝试将 mysql db 字段更改为 Integer 类型并直接存储 Unix 时间戳。但由于某种原因,当检索存储的值时,它永远不会正确地转换为 int 以便对其执行计算。我尝试了 (int) cast 和 intval ,但两者都无法将值转换回 int 。因此 Date() 函数不会在返回值上运行。

问题3:我尝试在 DATETIME 字段类型和 Int 字段类型上使用 mysql 自己的函数 UNIX_TIMESTAMP() ,但即使这样也会以字符串形式返回,而不想将其转换为 int 以便进行计算。

这根本没有意义。显然我做错了什么,但我不知道是什么。

//我用来存储日期时间的代码:

 $mysqltime = time();
if ($insert_stmt = $mysqli->prepare("INSERT INTO quotes (quoteID, userID, creation_date) VALUES (?, ?, ?)")) {
$insert_stmt->bind_param( 'sss', $quoteID, $_SESSION['user_id'], $mysqltime);

//演示我在检索存储的日期时间时遇到的问题的代码:

if ($stmt = $mysqli->prepare("SELECT UID, title, cust, jtitle,     UNIX_TIMESTAMP(creation_date) FROM quotes
WHERE userID = ? && status = ?
")) {
$stmt->bind_param('ss', $_SESSION['user_id'], $status ); // Bind to parameters.
$stmt->execute(); // Execute the prepared query.
$stmt->store_result();

// get variables from result.
$stmt->bind_result( $quoteID, $cust_title, $cust_surname, $job_title, $creation_date);
// $stmt->fetch();
$results = gmdate("d-m-Y", (int)$creation_date);

最佳答案

我个人更喜欢使用 mysql 而不是 php 进行日期和时间管理

使用像这样的插入语句:

"INSERT INTO quotes (quoteID, userID, creation_date) VALUES (?, ?, now())"

和一个选择语句,例如:

"SELECT UID, title, cust, jtitle, DATE_FORMAT(creation_date,'%d %M %Y')as creation_date".
" FROM quotes WHERE userID = ? && status = ?"

关于Php Mysql 数据库中的日期和时间 - 刚刚获取 0 或 1970,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24364773/

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