PHP、Mysql 从 strtotime 按月获取存档

标签 php mysql date

我正在构建一个博客页面。但我开始在存档部分遇到困难。

我在 mysql 中有一些带有时间戳的注释:

$timestamp = strtotime($month . " " . $date . " " . $year . " " . $time);

现在,如果我有一个链接:blog.php?Month=Febuary&Year=2012

如何在 SQL 查询中使用这两个参数来检索该月和该年的所有记录?

谢谢,

最佳答案

编辑:将它们更改为使用 UNIX 时间戳...

不需要strtotime()按月、年查询。相反,你可以这样做:

SELECT * 
FROM blogtbl
WHERE 
  YEAR(FROM_UNIXTIME(postdate)) = 2012
  AND UPPER(MONTHNAME(FROM_UNIXTIME(postdate))) = 'FEBRUARY'

也可以用 DATE_FORMAT() 来完成

SELECT * 
FROM blogtbl
WHERE 
  UPPER(DATE_FORMAT(FROM_UNIXTIME(postdate), '%M %Y')) = 'FEBRUARY 2012'

注意我使用UPPER()将查询转换为大写,只是为了更容易传入大小写不可预测的 PHP 变量。

我们假设您已经知道如何通过 $_GET['Month'], $_GET['Year'] 从 PHP 中的查询字符串中检索月份和年份。并正确转义它们以插入到您的查询中。

关于PHP、Mysql 从 strtotime 按月获取存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353285/

相关文章:

mysql - 使用 MySQL 选择具有设定日期+月份偏移量的行

php - 在Mysql中连接三个表以生成报表

php - 将数据从 jQuery 传递到 php 文件

php - Ajax 响应出错

java - 找不到适合 jdbc :mysql://127. xx.xxx.x:3306/的驱动程序

mysql - 将多个 SQL select 语句合并到列中

java - SimpleDateFormat 的严格两位数日期和月份解析

java - Hibernate HQL 和日期

macos - Swift 时间间隔格式化程序

php - CodeIgniter - 错误调用非对象上的成员函数 model()