php与mysql的时间戳_php5和mysql5时间戳和相关设置

php5和mysql5时间戳和相关设置

// mysql

//-----------------------------------------------

目前数据库保存时间的时间戳,带有时区设置

这里(中国)就是从1970年1月1日8点开始的秒数,

数据库

select UNIX_TIMESTAMP();返回当前时间戳,

当然也可以直接把UNIX_TIMESTAMP() 插入到数据库,即保存了当前时间,

select CURRENT_TIMESTAMP(UNIX_TIMESTAMP());//可以没有参数,这样就可以正确返回当前时间,

这就证明了mysql可以自圆其说

SELECT FROM_UNIXTIME(0, '%Y-%m-%d %k:%i:%s');

结果显示1970-01-01 8:00:00

// php

//-----------------------------------------------

为了迁就数据库,也使用从1970年1月1日8点开始的秒数

php5修改配置文件php.ini

大约第662行

去掉注释

date.timezone = PRC

php中,也可以使用time()获得当前时间戳

经实际与mysql的select UNIX_TIMESTAMP()比较,发现实际上一样的,很方便

个人更喜欢使用数据库的UNIX_TIMESTAMP().

然后,php在修改了配置文件后,能正确的显示时间了

经测试

getdate()函数和date()函数显示结果都正确

echo  date('Y-m-d H:i:s',time());

$t = getdate(time());

echo "{$t['year']}-{$t['mon']}-{$t['mday']} {$t['hours']}:{$t['minutes']}:{$t['seconds']}" ;

echo  date('Y-m-d H:i:s',0);

结果显示1970-01-01 08:00:00

// javascript

//-----------------------------------------------

最后是javascript

var d=new Date(0);

var year = d.getFullYear();

var month = (d.getMonth() + 1) ;

var day = d.getDate() ;

var hour = d.getHours() ;

var minute = d.getMinutes();

var second  = d.getSeconds() ;

s = year+'-'+month+'-' +day+' '+ hour+ ':'+minute+':'+second;

document.write( parseInt(d.getTime()/1000) );

document.write(s);

最终显示1970-1-1 8:0:0

// 总结

//-----------------------------------------------

尘埃落定,统一使用1970年1月1日8点开始的秒数

这也纠正了我以前一直的错误观念,从1970年1月1日0时开始的秒数

以上结果是在一台windows2003 Server版的测试结果

xieye

20080701

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值