比较时间我一般都用时间戳time()

解决方案 »

  1.   

    至于你要的3天内
    SELECT something 
    FROM tbl_name
    WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 3声明一下,这不是php,asp的问题,而是数据库查询语句的问题,谢谢,请不要随便的下结论
      

  2.   

    To 34n(猪八戒) ,你理解错了。我其实是提了两个问题:
    1。PHP有没有像isdate()这么方便的函数
    2。MYSQL中如果判断日期。我现在发现,PHP的时间日期处理感觉确实弱了点,没有那么多函数可用。
    而MYSQL则太强了,啥函数都有,不知该用哪个。你的TO_DAYS(CURDATE())用得不错!
    我还像MSSQL中一样用date_sub()呢
      

  3.   

    晕了,我的电子版“台湾彭武兴先生所著的 <<PHP BIBLE>>”里竟然没有!
    亏它还说是PHP 4完全中文手册,连3.x有的函数都没包括,失败!!!还是在这边找到了:http://php.liukang.com/manual/zh/function.strtotime.php
      

  4.   

    郁闷,还是出了问题.strtotime('+3 days',日期字段)得不到我期望的结果.经测试发现,strtotime('+3 days',date('Y-m-d'))也不对,结果只是为6位的整数:(
    补上时间部分也不行: strtotime('+3 days',date('Y-m-d H:m:s')),结果还是为6位的整数:(难道第二个参数必须为time(),也即时间戳?而不能为字符串的日期时间格式?
    那得用什么将我的date('Y-m-d')转为时间戳,非得要用带6个参数的mktime()?郁闷死了,恨死这个还要人家先用split解构出年月日的家伙!!
      

  5.   

    strtotime('+3 days',日期字段)
    当然是错的
    strtotime是php的函数,而“日期字段”显然是数据库的某个字段。当然不幸了strtotime返回的是unix时间戳echo date("Y-m-d",strtotime('+3 days'));//out 2005-05-21
      

  6.   

    checkdate: 验证日期的正确性。 
    date: 将服务器的时间格式化。 
    strftime: 将服务器的时间本地格式化。 
    getdate: 获得时间及日期信息。 
    gettimeofday: 取得目前时间。 
    gmdate: 取得目前与 GMT 差后的时间。 
    easter_date: 计算复活节日期。 
    easter_days: 计算复活节与三月廿一日之间日期数。 
    mktime: 取得 UNIX 时间戳记。 
    gmmktime: 取得 UNIX 时间戳记的格林威治时间。 
    time: 取得目前时间的 UNIX 时间戳记。 
    microtime: 取得目前时间的 UNIX 时间戳记的百万分之一秒值。
      

  7.   

    BS一下楼主
    不要以你的ASP思维去考虑PHP的处理方式
    PHP是一门很灵活的语言
      

  8.   

    晕了,我可不是鄙视PHP,可确实在日期时间处理上不如ASP和MSSQL,也比不上MYSQL!To xuzuning(唠叨),我可不是说非得要日期字段,我只是说只有日期部分,而没有时间部分的情况!
    比如说用户输入的日期,或date('Y-m-d')返回的东东!strtotime('+3 days')只能返回当天的后三天,可我要返回指定日期的后三天!
      

  9.   


      我可不是说非得要日期字段,我只是说只有日期部分,而没有时间部分的情况!
      比如说用户输入的日期,或date('Y-m-d')返回的东东!也是一样的处理
    你看一下手册,strtotime支持所有的GNU 日期语法http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html
      

  10.   

    晕了,全是E文,看得头大啊~~~~我只是想用PHP返回指定日期的后三天啊。
    可用最方便的strtotime('+3 days','文本格式的日期2005-05-18')得不到正确结果。
    难道得用strtotime('+3 days','05-18-2005')??
    那即使可以,那还不得让我先转换下用户输入的“年-月-日”? :(
      

  11.   

    什么菜都有看你怎么组织了,
    多看看
    strtotime();
      

  12.   

    继续备注: strtotime('+3 days','05-18-2005')还是不行的...是不是有高手已经有过成功的实践?
      

  13.   

    http://www.php.net
    自己去看.
    怎么可能会弱.
      

  14.   

    strtotime
    (PHP 3>= 3.0.12, PHP 4 , PHP 5)strtotime --  将任何英文文本的日期时间描述解析为 UNIX 时间戳 
    说明
    int strtotime ( string time [, int now])
    本函数预期接受一个包含英文日期格式的字符串并尝试将其解析为 UNIX 时间戳。如果 time 的格式是绝对时间则 now 参数不起作用。如果 time 的格式是相对时间则其所相对的时间由 now 提供,或者如果未提供 now 参数时用当前时间。失败时返回 -1。 因为 strtotime() 的行为是依照 GNU 日期语法的,因此请看看 GNU 手册中的 Date Input Formats。这里记述了 time 参数的合法语法。 例子 1. strtotime() 例子<?php
    echo strtotime ("now"), "\n";
    echo strtotime ("10 September 2000"), "\n";
    echo strtotime ("+1 day"), "\n";
    echo strtotime ("+1 week"), "\n";
    echo strtotime ("+1 week 2 days 4 hours 2 seconds"), "\n";
    echo strtotime ("next Thursday"), "\n";
    echo strtotime ("last Monday"), "\n";