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、付费专栏及课程。

余额充值