mktime()函数对计算日期和确认日期有效性来说是非常有用的。它将自动为超过范围以外的输入计算正确的值:
代码如下 | 复制代码 |
<?php echo(date("M-d-Y",mktime(0,0,0,12,36,2001))."<br />"); |
The output of the code above would be:
上述代码将输出下面的结果:
Jan-05-2002Feb-01-2002Jan-01-2001Jan-01-1999 不用多解释了吧!
代码如下 | 复制代码 |
$now = mktime(0,0,0,date("m"),date("d"),date("Y")); |
显示结果:
now is 2012/05/30
显然这不是我想要的结果。
于是,按照旧有的思维,我想当然的改造成下面这个形式:
代码如下 | 复制代码 |
$now = mktime(date("h"),date("M"),date("s"),date("m"),date("d"),date("Y")); |
注意红色的部分,通常如果月份用m,那么分钟就应该是M。或者前者用M,后者用m。
显示结果:
Warning: mktime() expects parameter 2 to be long, string given in D:usrwebroottestPHPindex.php on line 46
now is 1970/01/01 08:Jan:00
看来主观臆断是不可取的,PHP的语法和其他的语言还是有些区别的。
不卖关子了,还是直接给大家正确的答案
代码如下 | 复制代码 |
$now = mktime(date("h"),date("i"),date("s"),date("m"),date("d"),date("Y")); |
哈哈~是“i”而不是什么m或者M,这里给出大家这个示例只是想让PHP的初学少走一些弯路。
至于M是什么意思,大家自己做一下就明白了...嘿嘿!!!
显示结果:
代码如下 | 复制代码 |
now is 2012/05/30 04:54:25 |
好了,
mktime() 函数返回一个日期的 Unix 时间戳。
参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。
参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。
语法
mktime(hour,minute,second,month,day,year,is_dst)
参数 | 描述 |
---|---|
hour | 可选。规定小时。 |
minute | 可选。规定分钟。 |
second | 可选。规定秒。 |
month | 可选。规定用数字表示的月。 |
day | 可选。规定天。 |
year | 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。 |
is_dst |
可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。 自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。 |
代码如下 | 复制代码 |
function sendHeader($num, $rtarr = null) |
看PW源码的时候发现setHeader()函数中使用static关键字,很奇怪,以前也没这样用过。
static用在函数里面,声明一次变量后,如果再次调用这个函数将会在初始值延续,如$sapi这里将累加。
代码如下 | 复制代码 |
?echo sendHeader(1)."<br>";
?apache2handler |
和global有点类似,但不同的是作用域。static只能作用于此函数。
有点意思。需要深入研究。
代码如下 | 复制代码 |
class test { public static function a(){} public function b(){} } $obj = new test; |
调用 代码
代码如下 | 复制代码 |
test::a(); |
变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失
例子 使用静态变量的例子
代码如下 | 复制代码 |
<?php function test() { static $w3sky = 0; echo $w3sky; $w3sky++; } ?> |
现在,每次调用 test() 函数都会输出 $w3sky 的值并加一。
更多详细内容请查看:http://www.111cn.net/phper/php/php-static.htm
原字符串1,2,3,4,5,6,
去掉最后一个字符",",最终结果为1,2,3,4,5,6
代码如下:
代码如下 | 复制代码 |
$str = "1,2,3,4,5,6,"; |
系统自带的函数即可实现这样的效果,两种方法:
1) substr($str, 0, -1)
2)rtrim($str, ",")
上面的实例只讲述了利用php自身的函数,我们还可以利用很多的方法来实现了,这里就不说多了最基本的php入门教程大可参考一下。
本文章来介绍一篇关于thinkphp开启调试模式取消生成缓存,有需要了解的朋友可以参考一下本文章。最近回到thinkphp 发现以前老版本的关闭缓存说的common这个里面的那两个关闭缓存的文件不见了。找了很长时间不知道怎么回事。
于是去看手册,看百度。 后来发现,可以开启调试模式来关闭缓存,而且开启调试模式对程序员来说还有很多好处的哦..
在thinkphp3.0完全开发手册里面搜调试两个字,你回发现很多技巧。下面是开启调试功能的步骤
虽然编译缓存很优秀,但是并不利于开发阶段中调试和排错,我们强烈建议ThinkPHP开发人员在开发阶段始终开启调试模式,方便及时发现隐患问题和分析、解决问题。开启调试模式很简单,只需要在入口文件中增加一行常量定义代码:
我的index.php里面的代码分享给你:
代码如下 | 复制代码 |
<?php |
在完成开发阶段部署到生产环境后,只需要删除调试模式定义代码即可切换到部署模式。
开启调试模式后,系统会首先加载系统默认的调试配置文件,然后加载项目的调试配置文件,调试模式的优势在于:
² 开启日志记录,任何错误信息和调试信息都会详细记录,便于调试;
² 关闭模板缓存,模板修改可以即时生效;
² 记录SQL日志,方便分析SQL;
² 关闭字段缓存,数据表字段修改不受缓存影响;
² 严格检查文件大小写(即使是Windows平台),帮助你提前发现Linux部署问题;
²
可以方便用于开发过程的不同阶段,包括开发、测试和演示等任何需要的情况,不同的应用模式可以配置独立的项目配置文件;
关于调试模式的更多用法,我们会在后面进行更详细的讲解。
在php中要删除字符空间有很多的方法可用,我来介绍利用mb_ereg_replace()和ltrim,rtrim,trim这三个函数的处理方法。
实例
代码如下 | 复制代码 |
<? |
有些朋友可能对mb_ereg_replace()没看明白,下面我们来介绍一下mb_ereg_replace这个函数吧
mb_ereg_replace()我们只要注意前面的mb就好了,有些朋友用过字符转换的一看就明白了这个函数是支持中文。
有些朋友会问php不是有自己的函数么,下面我们看实例
实例
代码如下 | 复制代码 |
<?php |
总结:同一个问题会有多种解决方法,就像我们删除字符空格一样,可以用两种不同的方法达到想同的效果了。