您好,欢迎访问一九零五行业门户网

PHP 时间与字符串的相互转化

1、求两个日期的差数,例如2007-3-5 ~ 2007-3-6 的日期差数 echo abs(strtotime(2007-3-5) - strtotime(2007-3-6))/60/60/24; echo 天br; 2、js 获取当前日期 var mydate = new date(); mydate.getyear(); //获取当前年份(2位) mydate.getfullyear(); //获取
1、求两个日期的差数,例如2007-3-5 ~ 2007-3-6 的日期差数
echo abs(strtotime(2007-3-5) - strtotime(2007-3-6))/60/60/24;
echo 天
;
2、js 获取当前日期
var mydate = new date();
mydate.getyear();        //获取当前年份(2位)
mydate.getfullyear();    //获取完整的年份(4位,1970-)
mydate.getmonth();       //获取当前月份(0-11,0代表1月)
mydate.getdate();        //获取当前日(1-31)
mydate.getday();         //获取当前星期x(0-6,0代表星期天)
mydate.gettime();        //获取当前时间(从1970.1.1开始的毫秒数)
mydate.gethours();       //获取当前小时数(0-23)
mydate.getminutes();     //获取当前分钟数(0-59)
mydate.getseconds();     //获取当前秒数(0-59)
mydate.getmilliseconds();    //获取当前毫秒数(0-999)
mydate.tolocaledatestring();     //获取当前日期
var mytime=mydate.tolocaletimestring();     //获取当前时间
mydate.tolocalestring( );        //获取日期与时间
3、php 日期与时间戳相互转化
php时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式(2008-12-4)
所以存到数据库也有两种形式了(真正不止,我的应用就两种),时间戳类型我是保存为字符串的,这个是比较方便的.
正常日期类型是保存为date型的.
这两个要注意一下,我平时用两种,所以,前几天建的表,把时间类型存为date的,我还一直用时间戳保存,一直资料写不进表,调试了好久的才知错误之处,是类型不符合,不给写入库.
像上面的时间戳是比较方便,但,显示的时候,不至于把这个1228348800串给客户看吧,god nows!
所以就用到了这两个的转换,先说一下如何取得当前的时间戳,$date1=time();这样就取得当前的时间戳了,要转回2008-12-4这种格式呢, 用到date()这个函数了,在php中date()函数比较常用,如取得当前日期,可以用$date2=date('y-m-d');,关于里面参数的意思,如不懂就查一下php的手册了.
好,言归正传,把1228348800转成2008-12-4格式代码如下:
$date3=date('y-m-d h:i:s',1228348800);
这样就ok了,如还想得到小时,分钟秒,只要把'y-m-d'改一下就可以了,不过要注意一下,php时间还像有8个小时的误差.加上就ok了.
时间戳转正常日期有了,反之呢,把正常日期格式转为时间戳呢,请看如下代码:
$year=((int)substr(2008-12-04,0,4));//取得年份
$month=((int)substr(2008-12-04,5,2));//取得月份
$day=((int)substr(2008-12-04,8,2));//取得几号
echo mktime(0,0,0,$month,$day,$year);
这样就能把正常日期转成时间戳了,这里如果有时分秒也是同理,
注意: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); ”这个可以由程序员任意设置,我的推
荐。
时区标识符,大陆内地可用的值是:prc,asia/chongqing ,asia/shanghai ,asia/urumqi (依次为中国,重庆,上海,乌鲁木齐) ,etc/gmt-8,asia/harbin
港台地区可用:asia/macao ,asia/hong_kong ,asia/taipei (依次为澳门,香港,台北)
还有新加坡:asia/singapore
这样就可以实现输出的是北京时间了
其它类似信息

推荐信息