|
|
发表于 2007-9-14 01:47:00
|
显示全部楼层
数据表 cdb_members 中regdate 字段为空!这一般是由于数据库导入、不同论坛之间进行数据转换时因为字段数据格式不同造成的。
因为DZ是按格林威治标准时间片格式存贮的,所以当该字段为空时,计算机会自动给出他自已的生日,就是“1970-01-01”……
(这可能也是一个未解决好的“千年”问题吧~~)。
修正的方法:
进入后台-系统工具-数据库升级,执行以下SQL语句:
UPDATE `cdb_members` SET `regdate` = '1182154498' WHERE `cdb_members`.`regdate` ='' ;
上面这个'1182154498'是我随便加的,换算成日历时间就是2007-6-18,一个很吉祥的日子哦~~~。
如果你想改成别的时间,可以用以下程序进行转换。- <?
- $strtime = "2004-1-1 16:23:45";
- $array = explode("-",$strtime);
- $year = $array[0];
- $month = $array[1];
- $array = explode(":",$array[2]);
- $minute = $array[1];
- $second = $array[2];
- $array = explode(" ",$array[0]);
- $day = $array[0];
- $hour = $array[1];
- $timestamp = mktime($hour,$minute,$second,$month,$day,$year);
- echo "字符串时间:$strtime
- ";
- echo "年:$year
- ";
- echo "月:$month
- ";
- echo "日:$day
- ";
- echo "时:$hour
- ";
- echo "分:$minute
- ";
- echo "秒:$second
- ";
- echo "转换为timestamp:" . $timestamp . "
- ";
- echo "从timestamp转换回来:" . date("Y-m-d H:i:s",$timestamp) . "
- ";
- echo "===获取当前时间线===
- ";
- $timestamp=time();
- $timeoffset =8;
- $member = gmdate('Y-n-j H:i:s', $timestamp + $timeoffset * 3600 );
- echo "
- 现在时间是:".$member."
- ";
- echo "时间片:".$timestamp;
- echo "===任意时间线转换===
- ";
- echo "1149091200
- ";
- $timestamp='1149091200';
- $timeoffset =8;
- $member = gmdate('Y-n-j H:i:s', $timestamp + $timeoffset * 3600 );
- echo "转换结果:
- ".$member;
- ?>
复制代码 以上方案也适用于所有出现“1970-1-1”问题的其他字段,只不过表名、字段名需要改变一下…… |
|