在PHP中对strtotime()进行了一番研究之后,我注意到当您传入空格和/或点时,它会返回一个有效的时间戳。var_dump(strtotime(""));var_dump(strtotime("."));var_dump(strtotime("................."));产生:int1443009652int1443009652int1443009652为什么PHP认为这是有效的? 最佳答案 最简单的答案是其中一些是falseyvar_dump(DateTime(false));//dateshowniscurr
我正在研究计算假期的PHP函数:functionholidays($country=1,$timespan_start=0,$timespan_end=0)假期以数组中的时间戳形式返回。因为我必须计算像二月的第一个星期一这样的日期,所以我尝试了strtotime("firstmondayfebruary$year")并且我发现这对2010年不起作用,因为02/01/2010是星期一-我得到的是2月8日。这个错误实际上在更改日志中提到:在5.2.7之前的PHP5中,如果该工作日是该月的第一天,则请求该月中给定工作日的给定事件会错误地将一周添加到返回的时间戳中。这已在5.2.7及更高版本中
我有这样的日期字符串:"201228Nov21:00CET"strtotime("2012年11月28日21:00CET")返回false。有什么方法可以将这个字符串转换成日期对象,还是我需要以不同的方式格式化它? 最佳答案 201211月28日21:00CET是一种奇怪的日期/时间格式。Y-D-M?你从哪里得到的?无论如何,DateTime对象有一个方法createFromFormat可以更好地解析:$dt=DateTime::createFromFormat("YdMH:iT",'201228Nov21:00CET');$ts=
PHP中的strtotime()如果您可以为它提供它可以理解并可以转换的日期格式,那么效果很好,但是例如您给它一个英国日期,它无法提供正确的unix时间戳。是否有任何官方或非官方的PHP函数可以接受一个格式变量,该变量告诉函数以哪种格式传递日期和时间?我最接近的做法是混合使用date_parse_from_format()和mktime()//ExampleusageofthefunctionI'mafter//Likethedate()functionbutinreverse$timestamp=strtotimeformat("03/05/201116:33:00","d/m/YH
我很困惑为什么以下PHPstrtotime函数在$monthToGet='June'时返回'07'作为月份编号,而不是'06':$monthToGet=$_GET['mon'];$monthAsNumber=date('m',strtotime($monthToGet));从搜索来看,这似乎是由于默认日期参数(在本例中为日期和年份)引起的,因为我没有指定它们。会是这个原因吗?任何建议表示赞赏! 最佳答案 长话短说你是对的echodate("m",strtotime("June"));->07但是,这确实有效:echodate("m"
我无法理解-为什么会出现以下情况?echodate("d-m-Y",strtotime($str));$str='214454';//Producestodaysdate$str='333333';//Produces1-1-1970$str='a'(orANYsinglechar)//Producestomorrowsdate$str='aa'(orANYdoublechar)//Produces1-1-1970或者只返回strtotime函数echostrtotime($str);$str='214454';//Producestodaysdate$str='333333';//r
谷歌搜索这个,但找不到答案。想知道这两个脚本是否有区别?+3天:echodate('d.m.YH:i:s',strtotime('+3day'));+3天:echodate('d.m.YH:i:s',strtotime('+3days'));输出完全一样。那么实现是为了确保人们得到更少的错误还是什么?而witchone应该优先使用? 最佳答案 这基本上是同一件事,并且出于可用性和漂亮的目的:strtotime('+1day');strtotime('+3day');strtotime('+1days');strtotime('+3d
我在获取本周星期一的日期时遇到问题。echodate('Y-m-d',strtotime('mondaythisweek'));当我在本地计算机(PHP5.3)上运行上述代码时,它正确输出“2011-03-07”,但我的服务器(PHP5.2)上的相同代码输出“2011-03-14”(那是下周一)。我尝试在两台机器上运行date('W'),我得到相同的结果(10)。编辑:有什么想法可以让这项工作正常进行吗?提前致谢。 最佳答案 使用date('Y-m-d',strtotime(date('o-\\WW')));
我已经看到了一些关于这个的问题,但没有一个明确的答案......strtotime()在将字符串转换为unix时间戳时将使用为PHP设置的默认时区。但是,我想将字符串转换为UTC中的unix时间戳。既然没有这样做的参数,那怎么办呢?我要转换的字符串是:2011-10-27T20:23:39,它已经是UTC格式了。我想将其表示为UTC中的unix时间戳。谢谢 最佳答案 我意识到这个问题很老了,但我找到了另一个可能有用的选项。您可以像这样将时区指定为传递给strtotime的字符串的一部分,而不是设置然后恢复php的时区:echodat
我试过这个:$date_string=strtotime('6Mar,201123:59:59');但我认为PHP由于某种原因无法解释它,因为它返回空。我试过这个:$date_string=strtotime('6Mar,2011midnight');上面的方法有效,但我需要它是午夜前的一秒,即一天的最后一秒。如何在不更改2011年3月6日部分的情况下让strtotime返回此内容? 最佳答案 希望这对您有所帮助。我使用了它,它在午夜前给出了今天的时间戳。违反直觉。$today_timestamp=strtotime('tomorr