【问题标题】:PHP Previous Dates not WorkingPHP以前的日期不起作用
【发布时间】:2014-05-15 03:38:00
【问题描述】:

日期格式存在一些问题。它只显示前 30 天,过去它不想工作的任何内容。非常感谢任何想法/帮助。

$today=date("d-m-Y");
if(!$fetch_Tasks=mysql_query("SELECT * FROM `tasks` WHERE `due`<'".$today."'"))
    showerror();
while($tasks=mysql_fetch_array($fetch_Tasks)){

    $now = time();
    $your_date = strtotime($tasks['due']);
    $datediff = $now - $your_date;
    echo "<font color=\"red\">[".floor($datediff/(60*60*24))." days overdue] </font>";

    echo $tasks['task']."<br>";
}

【问题讨论】:

  • 停止使用已弃用的mysql_*函数;考虑使用 PDO / MySQLi
  • due的数据类型是什么。另外我担心mysql会将此(d-m-Y)作为日期处理
  • 您的问题的问题是您的数据库或结构是什么导致了这种情况。
  • 如果due 是 unix_timestamp 那么$today 必须是time()
  • 如果 due 是一个日期字段,那么 $today 必须是 Y-m-d 格式而不是 d-m-Y

标签: php mysql date


【解决方案1】:

日期必须采用相同的格式。 功能: STR_TO_DATE() 可用于将两个日期转换为“自纪元以来的秒数”格式 那么比较是严格的数字

所以,due

STR_TO_DATE(strtotime('due', '%m/%d/%y')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多