php中有没有内置的日期检查和日期比较函数? 比较时间我一般都用时间戳time() 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 至于你要的3天内SELECT something FROM tbl_nameWHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 3声明一下,这不是php,asp的问题,而是数据库查询语句的问题,谢谢,请不要随便的下结论 To 34n(猪八戒) ,你理解错了。我其实是提了两个问题:1。PHP有没有像isdate()这么方便的函数2。MYSQL中如果判断日期。我现在发现,PHP的时间日期处理感觉确实弱了点,没有那么多函数可用。而MYSQL则太强了,啥函数都有,不知该用哪个。你的TO_DAYS(CURDATE())用得不错!我还像MSSQL中一样用date_sub()呢 晕了,我的电子版“台湾彭武兴先生所著的 <<PHP BIBLE>>”里竟然没有!亏它还说是PHP 4完全中文手册,连3.x有的函数都没包括,失败!!!还是在这边找到了:http://php.liukang.com/manual/zh/function.strtotime.php 郁闷,还是出了问题.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解构出年月日的家伙!! strtotime('+3 days',日期字段)当然是错的strtotime是php的函数,而“日期字段”显然是数据库的某个字段。当然不幸了strtotime返回的是unix时间戳echo date("Y-m-d",strtotime('+3 days'));//out 2005-05-21 checkdate: 验证日期的正确性。 date: 将服务器的时间格式化。 strftime: 将服务器的时间本地格式化。 getdate: 获得时间及日期信息。 gettimeofday: 取得目前时间。 gmdate: 取得目前与 GMT 差后的时间。 easter_date: 计算复活节日期。 easter_days: 计算复活节与三月廿一日之间日期数。 mktime: 取得 UNIX 时间戳记。 gmmktime: 取得 UNIX 时间戳记的格林威治时间。 time: 取得目前时间的 UNIX 时间戳记。 microtime: 取得目前时间的 UNIX 时间戳记的百万分之一秒值。 BS一下楼主不要以你的ASP思维去考虑PHP的处理方式PHP是一门很灵活的语言 晕了,我可不是鄙视PHP,可确实在日期时间处理上不如ASP和MSSQL,也比不上MYSQL!To xuzuning(唠叨),我可不是说非得要日期字段,我只是说只有日期部分,而没有时间部分的情况!比如说用户输入的日期,或date('Y-m-d')返回的东东!strtotime('+3 days')只能返回当天的后三天,可我要返回指定日期的后三天! 我可不是说非得要日期字段,我只是说只有日期部分,而没有时间部分的情况! 比如说用户输入的日期,或date('Y-m-d')返回的东东!也是一样的处理你看一下手册,strtotime支持所有的GNU 日期语法http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html 晕了,全是E文,看得头大啊~~~~我只是想用PHP返回指定日期的后三天啊。可用最方便的strtotime('+3 days','文本格式的日期2005-05-18')得不到正确结果。难道得用strtotime('+3 days','05-18-2005')??那即使可以,那还不得让我先转换下用户输入的“年-月-日”? :( 什么菜都有看你怎么组织了,多看看strtotime(); 继续备注: strtotime('+3 days','05-18-2005')还是不行的...是不是有高手已经有过成功的实践? http://www.php.net自己去看.怎么可能会弱. 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() 例子<?phpecho 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"; php4升级到5遇到的问题 购物车的实现 高手请进! php 返回的xml信息前面多一串数字 求两段php常用的简单代码,每段30分。 php聊天室的问题 为什么 $_SESSION['username']的值为空啊? 提问:关于HKSCS增补字符集的问题 帮我分析一下这个文件是不是被加密过了.. 用什么软件编辑.swf动画? 配置apache1。3。9+php4.0和pws4.0+php4.0? 关于PHP中的链接。请熟悉PHP的朋友进来帮个忙。 IPB 论坛 中文显示的问题?
SELECT something
FROM tbl_name
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 3声明一下,这不是php,asp的问题,而是数据库查询语句的问题,谢谢,请不要随便的下结论
1。PHP有没有像isdate()这么方便的函数
2。MYSQL中如果判断日期。我现在发现,PHP的时间日期处理感觉确实弱了点,没有那么多函数可用。
而MYSQL则太强了,啥函数都有,不知该用哪个。你的TO_DAYS(CURDATE())用得不错!
我还像MSSQL中一样用date_sub()呢
亏它还说是PHP 4完全中文手册,连3.x有的函数都没包括,失败!!!还是在这边找到了:http://php.liukang.com/manual/zh/function.strtotime.php
补上时间部分也不行: strtotime('+3 days',date('Y-m-d H:m:s')),结果还是为6位的整数:(难道第二个参数必须为time(),也即时间戳?而不能为字符串的日期时间格式?
那得用什么将我的date('Y-m-d')转为时间戳,非得要用带6个参数的mktime()?郁闷死了,恨死这个还要人家先用split解构出年月日的家伙!!
当然是错的
strtotime是php的函数,而“日期字段”显然是数据库的某个字段。当然不幸了strtotime返回的是unix时间戳echo date("Y-m-d",strtotime('+3 days'));//out 2005-05-21
date: 将服务器的时间格式化。
strftime: 将服务器的时间本地格式化。
getdate: 获得时间及日期信息。
gettimeofday: 取得目前时间。
gmdate: 取得目前与 GMT 差后的时间。
easter_date: 计算复活节日期。
easter_days: 计算复活节与三月廿一日之间日期数。
mktime: 取得 UNIX 时间戳记。
gmmktime: 取得 UNIX 时间戳记的格林威治时间。
time: 取得目前时间的 UNIX 时间戳记。
microtime: 取得目前时间的 UNIX 时间戳记的百万分之一秒值。
不要以你的ASP思维去考虑PHP的处理方式
PHP是一门很灵活的语言
比如说用户输入的日期,或date('Y-m-d')返回的东东!strtotime('+3 days')只能返回当天的后三天,可我要返回指定日期的后三天!
我可不是说非得要日期字段,我只是说只有日期部分,而没有时间部分的情况!
比如说用户输入的日期,或date('Y-m-d')返回的东东!也是一样的处理
你看一下手册,strtotime支持所有的GNU 日期语法http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html
可用最方便的strtotime('+3 days','文本格式的日期2005-05-18')得不到正确结果。
难道得用strtotime('+3 days','05-18-2005')??
那即使可以,那还不得让我先转换下用户输入的“年-月-日”? :(
多看看
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";