strtotime month 时间bug

//解决比如3月31号加一个月变成5月1号等问题
$time = time();
//当前月份中的第几天
$day = date(‘j‘,$time);
//这个月的天数
$month_day = date(‘t‘,$time);
//这个月的第一天
$first_day_of_month_time = strtotime(date(‘Y-m-01 H:i:s‘,$time));
//下个月的第一天
$first_day_of_next_month_time = strtotime("+1 month",$first_day_of_month_time);
//下个月的天数
$next_month_day = date(‘t‘,$first_day_of_next_month_time);
//如果下个月的天数小于这个月当前天数
if($next_month_day<$day){
    $next_month = date("Y-m-t",$first_day_of_next_month_time );    
}else{
    $next_month = date(‘Y-m-d‘,strtotime("+1 month",$time));
}
时间: 2024-10-29 00:41:31

strtotime month 时间bug的相关文章

rhel6使用的版本数部分intel xeon处理器时间bug

可惜在总前几天"oracle操作和维护的高级别小组"于.BBQ 上帝说,大量RHEL的bug.这bug在这个例子中,下面的URL: https://access.redhat.com/solutions/433883 Red Hat Enterprise Linux 5 kernels 上是没有该问题的. 还是建议在生产环境中安装rhel6.5版本号. 详细描写叙述在以下的帖子中: https://access.redhat.com/solutions/433883 以下全文转载: S

win10开机黑屏一段时间bug修复

新建一个txt文本,复制下面内容进去,在修改文件名后缀为.reg然后双击添加到注册表即可 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000] "EnableULPS"=dword:00000000 [HKEY_LOCAL_MACHINE\SYSTEM\ControlS

PHP版实现友好的时间显示方式(例如:2小时前)

完整php类,通常我会配合smary使用,快捷使用 (plugins/function.rdate.php),更多php技术开发就去php教程网,http://php.662p.com <?PHP /* * Data time functions. // * 模块 */ defined('TSKY') || die('Permission Denied!'); function fmtMonth($month){ return date('F, Y',day2time($month.'01'))

SQL 时间及字符串操作

都是一些很基础很常用的,在这里记录一下 获取年月日: year(时间) ---获取年,2014 month(时间) ----获取月,5 day(时间) -----获取天,6 如果月份或日期不足两位数,则前面补0,如5月,补0为:05,处理方法是使用right('要补的字符串'+原字符串,不足几位就补整形),如:RIGHT('0'+CAST(DAY(getdate()) AS NVARCHAR(2)),2),结果为04 往现有的日期上累加日期: 方法:DATEADD(datepart,number

Hibernate中HQL函数汇总及获取当前时间进行比较举例

在很多时候,我们负责的项目中,在数据访问层(DAO层)通常我们会使用sql语句或者hql语句,而在我们使用hql语句拼接时有时会报错,通常的原因是:我们使用了标准的sql语句,开启的确是hibernate的面向对象的语句 sessionFactory.getCurrentSession().createQuery(sql); 我们应改成 sessionFactory.getCurrentSession().createSQL(sql);就可以了. 但有时项目要求必须要使用hql,比如说将相应的接

SQL 判断时间条件

1.判断年月日是否相等 select * from table where cast(convert(varchar(10), 时间字段, 120) as datetime)='2010-10-01' 判断逻辑:通过convert函数现将时间字段中年月日截取出来,然后利用cast函数转化为datetime. 2.判读度分秒是否相等 set @transfrom_date= CAST('1900-1-1 '+ CONVERT(varchar(100), '时间字段', 108) as dateti

必须会的SQL语句(七)字符串函数、时间函数

字符串函数 1.大小写转换 --upper 转化成大写 --lower  转换成小写 select upper('AsaR') 2.长度 --len 字数 --datalength 字节数 3.去除前后空格 --rtrim 去除右边空格 --ltrim  去除左边空格 4.字符串截取 --Left('串',15)  从左侧开始 截取15个字节 --right('串',15) 从右侧开始 截取15个字节 --SubString('串',5,5)  从左侧第5个字节开始,截取5个字节 5.字符串替换

sql 根据时间获取数据

获取当月数据 MONTH(时间字段)=MONTH(GETDATE()) 计算两个时间差了多少分钟 DATEDIFF(mi,'7:00',convert(nvarchar(5),CreatedTime,108))    或者   datediff(Month,CreatedTime,getdate())=0 SELECT DATEDIFF(mi,'7:00',convert(nvarchar(5),'10:22',108))             --207

获取指定月份的 开始时间和结束时间

1 $Y = 2015;//获取年 2 $m = 8;//获取月 3 $month = $Y."-".$m;//当前年月 4 $month_start = strtotime($month);//指定月份月初时间戳 5 $month_end = mktime(23, 59, 59, date('m', strtotime($month))+1, 00);//指定月份月末时间戳 原文地址:https://www.cnblogs.com/zjj1990/p/8398782.html