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

标签 php mysql datetime

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

我正在编写一个简单的基于 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/

相关文章:

mysql - 无法添加或更新子行 : a foreign key constraint fails (`dbName` .`#sql-e77_7`

mysql - 在我的案例中,如何从第一个表中找到第二个表中丢失的行?

php - strtotime PHP,显示日期/时间

python - 在 Pandas 中如何从日期时间获取 UTC 时间戳(在给定时间)?

javascript - 添加增量到表单输入获取 TypeError : qty_el is null

使用 JSON 从 MYSQL 到 Javascript 对象的 PHP 数组

php - 我将 laragon php 版本更改为 8,之后 apache 将无法运行

mysql - 多源复制 MySQL 5.6 至 5.7 GTID 自动定位问题

perl - 用于确定日期之间天数的 DateTime.pm 代码

php - 如何从mysql中的字符串日期中提取日期格式?