我正在尝试创建事件日历。所有日期都工作正常,但任何一个月的第一天成为上个月的最后一天。这是我的 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/