Codeigniter中Active Record中的replace方法

DB Active Record 类 其实有个 replace方法

使用方法

 

可是文档上却没有相关说明

REPLACE INTO 这个语句只是MySQL里面有的吧。
PostgreSQL需要用其它方法实现,例如放在事务里,先DELETE再UPDATE。
Oracle里面有一条类似的语句MERGE INTO。

没有列入文档可能是考虑到数据库的兼容问题

 

PHP中使用strtotime的时区问题

由于没有认真阅读手册,在使用strtotime转换时间的时候出现的错误

通过strtotime(2013-02-04)转换的时间戳 再经过转换工具还原回去后发现 时间已经变为“2013-02-04 06:00:00”

相差了6个小时,程序员的嗅觉告诉我这一定和时区有关系了。

于是重新翻阅了手册里的strtotime函数(http://il1.php.net/manual/zh/function.strtotime.php)

发现了下面这段

本函数将使用 TZ 环境变量(如果有的话)来计算时间戳。自 PHP 5.1.0 起有更容易的方法来定义时区用于所有的日期/时间函数。此过程在date_default_timezone_get() 函数页面中有说明。

于是,使用date_default_timezone_get()函数输出服务器的时区,竟然是Europe/Berlin,好吧看来需要更改服务器的时区了。

更改服务器的时区有2种方法

1、修改php.ini文件,找到以下内容

去掉date.timezone =前的分号,在等号后面加上 Asia/Shanghai 或者 Asia/Chongqing

2、在PHP中需要设置时区的地方使用date_default_timezone_set()函数设置

例如 date_default_timezone_set(‘Asia/Shanghai’);

由于我的项目里使用的CI框架,于是在config/config.php的配置文件末尾加上以下代码就可以全局设置时区