需要注意的问题:一、PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式2015-12-5。
二、php5.1以上时间戳会与实际时间相差8小时,解决办法如下:
1、最简单的方法就是不要用php5.1以上的版本--显然这是不可取的方法。
2、修改php.ini。打开php.ini查找date.timezone去掉前面的分号,后面加Asia/Shanghai,重启apache服务器即可。缺点就是如果程序。放到别人的服务器上,不能修改php.ini,那就奈何不得了。
3、在程序中添加时间的初始化的语句即:date_default_timezone_set(Asia/Shanghai)。
php日期格式转换总结:
<?php
//将当前时间转换成yyyy-mm-dd格式串,再转换成日期格式,绕了一圈哈
echo strtotime(date('Y-m-d',time()).' 00:00:00')
//将GNU 日期输入格式的字符转换成时间
echo strtotime('now')
//标准的字符串转换成时间
$t = '2012-9-10 15:18:06'
$time = strtotime($t)
//将时间转换成日期字符yyyymmdd,再转换成整型格式
$d = intval(date('Ymd',$time))
echo '付款时间:'.$d
<?php
header("Content-type: text/htmlcharset=utf-8")
$txDate = '2016-06-16'
$dateTime1 = strtotime($txDate) //int 1466028000 将英文文本日期时间解析为 Unix 时间戳:
$dateTime2= date("Y-m-d H:i:s",$dateTime1)//string '2016-06-16 00:00:00'
(length=19) Date() 函数把时间戳格式化为更易读的日期和时间。
//拼接今日最后时间2016-06-16 23:59:59
$dateTime= date("Y-m-d H:i:s",strtotime(date("Y-m-d",strtotime($dateTime2))."+ 23 hours 59 minutes 59 seconds "))//string '2016-06-16 23:59:59' (length=19)
$sql = select * form `vvt_user` where userid = 100 AND date_time >= $dateTime2 AND date_time <= $dateTime?>
方法一date函数echo date(‘y-m-d h:i:s’,time())
//2010-08-29 11:25:26
方法二 time函数
$time = time()
echo date("y-m-d",$time) //2010-08-29
方法三 $_server['server_time']
方法四 strftime
echo strftime ("%hh%m %a %d %b" ,time())
18h24 sunday 21 may
还有一个问题就是时区问题,php环境默认时差与北京时间相差8小时,我们要想获取正确的时间就必须设置
在php文件开始处 加上date_default_timezone_set('prc')
或在php.ini里面 date.timezone=prc嗾。
记得修改了php.ini要重起apache