我需要在PHP中创建函数,让我可以在给定的日期时间单位上调/下调。具体来说,我需要能够从当前月份转到下一个月/上一个月。我想我可以使用DateTime::add/sub(P1M)来做到这一点。但是,当尝试获取上个月时,如果日期值=31,它就会出错-看起来它实际上是在倒数30天而不是递减月份值!:$prevMonth=newDateTime('2010-12-31');尝试减少月份:$prevMonth->sub(newDateInterval('P1M'));//='2010-12-01'$prevMonth->add(DateInterval::createFromDateStrin
我需要在下个月使用php。到处都写着这些例子date('Y-m-t',strtotime('+1month'));以上代码的输出是'2017-03-31'。我需要二月,而不是三月。 最佳答案 如果你想得到下一个而不考虑当前月份的当前日期。下面的代码可能对你有帮助echodate('M',strtotime('firstdayof+1month'));//e.g."Jan"echodate('m',strtotime('firstdayof+1month'));//e.g."1"echodate('F',strtotime('firs
我有一个包含一些值的数组。这里我只需要计算2019年。$array=array("date_2019_12"=>0,"date_2019_11"=>0,"date_2019_10"=>0,"date_2019_09"=>0,"date_2019_08"=>0,"date_2019_07"=>0,"date_2019_06"=>0,"date_2019_05"=>0,"date_2019_04"=>0,"date_2019_03"=>0,"date_2019_02"=>0,"date_2019_01"=>10,"date_2018_12"=>1,"date_2018_11"=>2,"da
我以前见过关于在现有日期上增加两个月的问题,但是现有的答案对我帮助不大,因为我得到的结果与我想要的不同。我设置了一个日期如下:$date="2014-12-31";$date=date('Y-m-d',strtotime("$date+2month"));添加2个月后,我打印它:echo$date;我的结果:2015-03-03但这对我来说不合适,因为这超出了我真正想要的整整一个月:2015-02-28我该怎么做? 最佳答案 我会使用PHP的DateTime类。$date=newDateTime('2014-12-31');$dat
我有一个返回1个月前的url的函数。我想显示当前选择的月份,但我不能使用简单的当前月份,因为当用户点击指向1个月前的链接时,选择的月份会发生变化并且不是当前月份。因此,函数返回2012年8月我如何制作添加1个月的小php脚本?到目前为止我已经: 最佳答案 简单方法:$next_month=strtotime('august2012nextmonth');更好的方法:$d=newDate('August2012');$next_month=$d->add(newDateInterval('P1M'));相关文档:strtotimeda
这个问题在这里已经有了答案:strtotime'nextmonth'notactingasexpected(todaythatis)(3个答案)关闭9年前。今天是31st5月$currentM=date('m');//05$nextM=date('m',strtotime('+1month'));//07我做错了什么?我不明白为什么下个月要给07。
我刚刚注意到PHP日期函数的行为很奇怪,有人可以解释我做错了什么吗?以下代码显示相同的结果可能只是我太蠢了,但有人能解释一下为什么会这样吗? 最佳答案 在您的date('Y-m-t')调用中使用t时,您指的是:t-Numberofdaysinthegivenmonth如果您尝试过Y-m-d,您会发现这是两个不同的日期:string(10)"2016-03-31"string(10)"2016-03-02"要解决此问题,您可以使用strtotime格式lastdayoflastmonth:结果是:string(10)"2016-03-
今天是2015-07-08。当我运行以下命令时,它返回0。它不应该返回12吗?日期是12个月前。同样,如果$date='2014-06-03',它会返回1。不应该是13吗?最近12个月内的所有日期均已正确计算。$date='2014-07-03';$datetime1=newDateTime(date('Y-m-01',strtotime($date)));$datetime2=newDateTime(date('Y-m-d'));$interval=$datetime1->diff($datetime2);$months_ago=$interval->format('%m');ech
我已经找到了解决这个问题的方法,但在某些情况下会出错。以下是我的发现:此代码段用于打印2015年8月和2015年7月的第一个星期六:$sat=date("FY",strtotime("2015-08-01"));echo$fir_sat="$satfirstsaturday";echo"is".date('d',strtotime($fir_sat));$sat=date("FY",strtotime("2015-07-04"));echo$fir_sat="$satfirstsaturday";echo"is".date('d',strtotime($fir_sat));输出如下:A
我需要确定下个月的付款日期。所以我选择最后的截止日期并增加一个月。我该怎么做?我的例子是:最后一次付款是1月31日,我正在做Carbon::create(2018,1,31,0,0,0)->addMonthsNoOverflow(1)它有效,它给出2018-02-28但之后下一次付款将再次在28日到期。所以我需要在添加一个月后设置一个日期。Carbon::create(2018,2,28,0,0,0)->addMonthsNoOverflow(1)->day(31)它给了我2018-03-31这很好但是如果我在第一个例子中使用这个公式Carbon::create(2018,1,31,0