原生php中时间转换,php中时间戳和正常日期的相互转化

1.首先是时间戳转化为正常时间

用到php的date()函数

date() 函数格式化一个本地时间/日期。

语法:

date(format,timestamp)

例子:

将 1381395067转化为2013-10-10

echo date("Y-m-d","1381395117");

输出:2013-10-10

注:1381395117这个就是时间戳,php中用time()和mktime()函数可以生成。

2.正常日期转化为时间戳

用到PHP中的mktime()函数

mktime() 函数返回一个日期的 Unix 时间戳。

参数总是表示 GMT 日期,因此is_dst对结果没有影响。

参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。

mktime(hour,minute,second,month,day,year,is_dst)

注:如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。 自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。

例子:

echo(date("M-d-Y",mktime(0,0,0,1,1,2013)))."
";

echo mktime(0,0,0,1,1,2013)."
";

输出:

Jan-01-2013

1356998400

已经知道一个日期字符串转化为时间戳:

$year=((int)substr("2013-10-10",0,4));//取得年份

$month=((int)substr("2013-10-10",5,2));//取得月份

$day=((int)substr("2013-10-10",8,2));//取得几号

echo mktime(0,0,0,$month,$day,$year);

输出:

1228348800

注:

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

这样就可以实现输出的是北京时间了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值