在php和MySql中计算时间差的方法
2015-01-24信息快讯网
在php中计算时间差有时候是件麻烦的事!不过只要你掌握了日期时间函数的用法那这些也就变的简单了。
最近在研究自己爱围脖的时候就要计算到恋爱天数,这需要php根据每天的日期进行计算,下面就来谈谈实现这种日期计算的几种方法:(1) 如果有数据库就很容易了!若是MSSQL可以使用触发器!用专门计算日期差的函数datediff()便可! 若是MYSQL那就用两个日期字段的差值计算的计算结果保存在另一个数值型字段中!用时调用便可!
(2)如果没有数据库,那就得完全用php的时间日期函数!
下面主要说明之: 例:计算1998年5月3日到1999-6-5的天数:
$startdate=mktime("0","0","0","5","3","1998"); $enddate=mktime("0","0","0","6","5","1999"); //所得到的值为从1970-1-1到参数时间的总秒数结果是整数.那么下面的代码就好编多了 $days=round(($enddate-$startdate)/3600/24) ; echo $days;
$days为得到的天数; 若mktime()中的参数缺省,那表示使用当前日期,这样便可计算从借书日期至今的天数。
最后说一下SQL的计算方法:
DateDiff 函数
描述:返回两个日期之间的时间间隔。
语法:
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear>)
interval: 必选。字符串表达式,表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。
date1, date2: 必选。日期表达式。用于计算的两个日期。
firstdayofweek: 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
firstdayofweek 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。
说明:DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1。
如果 date1 晚于 date2,则 DateDiff 函数返回负数。
firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。
如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (” “) 中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
在 interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。
DatePart 函数
描述:返回给定日期的指定部分。
语法:
DatePart(interval, date[, firstdayofweek[, firstweekofyear>)
DatePart: 函数的语法有以下参数:
interval: 必选。字符串表达式,表示要返回的时间间隔。有关数值,请参阅“设置”部分。
date: 必选。要计算的日期表达式。
firstdayof week: 可选。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
firstweekofyear: 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
interval 参数可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日数) 、d (日) 、w (一周的日数) 、ww (周) 、h (小时) 、n (分钟) 、s (秒)
firstdayofweek 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbSunday 1 星期日(默认)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 参数可以有以下值:
(以下分别为:常数 值 描述)
vbUseSystem 0 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。
vbFirstFourDays 2 由在新年中至少有四天的第一周开始。
vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。
说明:DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。
firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。
如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (” “) 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码!
PHP setTime 设置当前时间的代码
php计算十二星座的函数代码
用PHP+MySQL搭建聊天室功能实例代码
php中计算未知长度的字符串哪个字符出现的次数最多的代码
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
全新的PDO数据库操作类php版(仅适用Mysql)
php插入中文到sqlserver 2008里出现乱码的解决办法分享
php日期转时间戳,指定日期转换成时间戳
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
MySQL 日期时间函数常用总结
php数字游戏 计算24算法
PHP 年龄计算函数(精确到天)
PHP中使用mktime获取时间戳的一个黑色幽默分析
php 团购折扣计算公式
PHP导入Excel到MySQL的方法
PHP遍历二维数组的代码
PHP大批量数据操作时临时调整内存与执行时间的方法
PHP中Date()时间日期函数的使用方法小结
php SQL Injection with MySQL
PHP的SQL注入实现(测试代码安全不错)
php中根据某年第几天计算出日期年月日的代码
PHP中防止SQL注入实现代码
php 连接mysql连接被重置的解决方法
延长phpmyadmin登录时间的方法
PHP+SQL 注入攻击的技术实现以及预防办法
php算开始时间到过期时间的相隔的天数
PHP备份/还原MySQL数据库的代码
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
PHP 设置MySQL连接字符集的方法
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
利用php+mysql来做一个功能强大的在线计算器
php中计算时间差的几种方法
php 计算两个时间戳相隔的时间的函数(小时)
计算一段日期内的周末天数的php代码(星期六,星期日总和)