草庐IT

datetime-format

全部标签

php - 使用 DateInterval 和 DateTime::add 添加月份时会出现什么问题?

我没能找到解决这个问题的合适方法。正如您在PHP文档中的示例#3中看到的那样,他们声明onemustbewarewhenaddingmonths在DateTime::add中使用DateInterval。对于为什么该方法的行为如此以及我可以做些什么来避免这种情况,我并没有任何解释,乍一看我发现这是一个错误。有人对此有一些见解吗? 最佳答案 问题是每个月的天数可能不同。问题是当您想将日期增加1个月时您在做什么。根据PHP文档,如果您在1月31日(或30日)添加1个月,预期行为是什么?2月只有29天。是否要设置为该月的最后一天?如果这是

php - DateTime::diff(DateTime [, bool absolute = false]) 中的绝对参数有什么作用

这是示例代码$c=newDateTime();$o=clone$c;$o->modify('-60days');$diff=$c->diff($o);$diff2=$c->diff($o,TRUE);var_dump($diff,$diff2);哪些输出object(DateInterval)#3(8){["y"]=>int(0),["m"]=>int(1),["d"]=>int(29),["h"]=>int(0),["i"]=>int(0),["s"]=>int(0),["invert"]=>int(1),["days"]=>int(60)}object(DateInterval)#

php - 使用 number_format 添加千位分隔符

我试图非常简单地获取变量$output中的数字,并将其转换为带有千位分隔符的数字。它当前输出的数字是49995,但我希望它显示为49,995。遇到了一些麻烦。帮忙?functiontwitter_followers($user='mytwitterusername'){//BuildTwitterapiurl$apiurl="http://api.twitter.com/1/users/show.json?screen_name={$user}";//cacherequest$transient_key=$user."_twitter_followers";//Ifcached(tra

php - DateTime/DateInterval 每次刷新增加 25 小时会产生完全不同的结果

这是我的代码:$timezone=new\DateTimeZone('America/New_York');$date1=new\DateTime(date("Y:m:dH:i:s",time()),$timezone);$date1->add(new\DateInterval("PT24H"));echo$date1->format('Y-m-dh:s:m');这应该会在当前时间上增加24小时。问题是,每次刷新页面时,我都会得到不同的结果。我的意思不是像人们期望的那样只有几秒钟,我的意思是很多分钟。有些高于实际时间,有些低于实际时间。现在在晚上9:51进行三次刷新,结果如下:2013

php - 如何有效地比较两个 DateTimes 并检查它们是否是同一天?

我有两个DateTime对象$lastDate=$entity->getDate();//isaDateTimewithsameformatas$today$today=\DateTime::createFromFormat('!Y-m-d',date('Y-m-d'));现在我想检查这两个日期是否是同一天,或者它们是否相隔超过一天(但这还包括如果$lastDay是昨天晚上11点并且$today是新的一天凌晨1点)。我目前的情况是$diff=$today->diff($lastDate);if($diff->days>0){$return=false;}else{$return=tru

php - 根据 future 日期自动生成年份

我有一个格式为March8-10的日期字符串,其中没有提供年份,但根据日历年的当前日期,这将是下一年3月的日期。当与上述类似的日期已超过12月31日时,提供准确年份的最佳方法是什么?使用$sdate>$now进行类似下面的思考,但是这会将比现在大的任何日期增加+1年,并且不会将12月31日视为当年的结束。$dates=trim('March8-10');$now=date("Y-m-d",strtotime("now"));if(strpos($dates,'-')!==false){$sdate=trim(substr($dates,0,strpos($dates,'-')));if

php - 未捕获的异常 'Exception' 消息为“DateTime::__construct():

我在输出在我的PHP文件中创建的日期时遇到问题。我一直在关注如何制作一个真正的Basic-CMS平台的教程,以帮助我了解databases和PHP的一些基础知识,一切都已经完成一切顺利,直到我尝试输出页面的创建日期。这是我得到的错误Fatalerror:Uncaughtexception'Exception'withmessage'DateTime::__construct():Itisnotsafetorelyonthesystem'stimezonesettings.Youare*required*tousethedate.timezonesettingorthedate_defa

php - date() 或 format_date() 返回 1970?

我有一个包含日期字段的表,该字段已正确填充。当我执行以下操作时date;?>工作正常;但是,当我用date()格式化它时或format_date()它只返回01/01/1970。如果有区别,它会先存储在一个数组中,然后再放入HTML表格中。 最佳答案 您可以使用以下内容(如果$mytable->date的格式适合strtotime())并根据您的需要采用第一个参数:date));?> 关于php-date()或format_date()返回1970?,我们在StackOverflow上找

PHP:以小时、分钟和秒为单位获取两个 DateTime 对象之间的差异

我正在尝试计算一个人在给定日期的工作小时数。为此,我需要获取两个DateTime对象之间的时、分和秒差值。到目前为止,我可以像这样成功地做到这一点$timeIn=newDateTime($time['timeIn']);$timeOut=newDateTime($time['timeOut']);$time['hours']=date_diff($timeIn,$timeOut)->format("%H:%i:%s");这似乎工作正常,直到我放入一个员工忘记下类的测试用例。现在,让我们说$timeIn='2016-09-2814:26:17'$timeOut='2016-09-3009

PHP:使用 datetime() 计算时间

我正在制作一个时间计算器,它可以从UTC时区的当前时间或存储在MySQL数据库中的用户定义日期中增加或减少天数、小时数和分钟数。我当前的代码可以工作,但我一直无法弄清楚如何调整时间格式。代码:$days="+2days";$hours="+1hours";$minutes="+5minutes";$time=newDateTime();//assumescurrenttime$time->setTimezone(newDateTimeZone('Europe/London'));$time->modify("$days,$hours,$minutes");echo$time->form