php - Mysql FROM_UNIXTIME 将 3 月 1 日转换为 2 月 28 日

标签 php mysql unix-timestamp

我正在尝试创建事件日历。所有日期都工作正常,但任何一个月的第一天成为上个月的最后一天。这是我的 Mysql 查询 -

查询 1-

$sql = "select  DATE_FORMAT(FROM_UNIXTIME(post_date), '%Y') as mnth,
                DATE_FORMAT(FROM_UNIXTIME(post_date), '%M') as yr 
        from ".EVENT." 
        GROUP BY (DATE_FORMAT(FROM_UNIXTIME(post_date), '%M %Y')) 
        ORDER BY(post_date) ASC limit $offset ,$limit";

在循环中-

$loop="SELECT * 
       FROM ".EVENT." 
       WHERE event_status='1' 
             AND DATE_FORMAT(FROM_UNIXTIME(post_date), '%Y')=".$result['mnth']." 
             AND DATE_FORMAT(FROM_UNIXTIME(post_date), '%M')='".$result['yr']."' 
      ORDER BY(post_date) ASC" ;

最佳答案

通过检查 mysql set timezone,我发现它是在 MST 中设置的,并且我将所有日期存储为 UTC 格式。为了解决这个问题,我只是将我的默认时区 UTC 转换为 MST,它解决了我的问题。

关于php - Mysql FROM_UNIXTIME 将 3 月 1 日转换为 2 月 28 日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42460492/

相关文章:

python - MySQL from_unixtime() 和 Python time.ctime() 不一致

php - 无法显示从 AES_DECRYPT 检索到的特殊字符

php - 如何从数据库中检索图像到 html 表单?

员工时钟的MySQL数据库结构

PHP 按日期(月和年)以及用户进行选择和分组

mysql - LEFT JOIN 和 SUM 与 GROUP BY - 所有行的结果相同

php - 获取当月和上个月的所有unix时间戳

php - Sprintf 重复值

php - 比较字符串

php - 在 PHP 和 Mysql 中自动显示自定义格式发票号