常用函数-current_time()

5条评论

说明

函数current_time("mysql", $gmt)返回格式为“年-月-日 时:分:秒”的时间。如果$gmt=1,返回的时间为GMT时间;如果$gmt=0,返回的时间为浏览器客户端本地时间(由WordPress选项gmt_offset决定,在“常规”菜单下的“时区”选项中进行设置)。

警告: current_time('timestamp',1)返回(作为时间标记)服务器时间,而不是GMT时间!PHP函数time()返回的才是GMT时间,使用time()时不必再使用current_time('timestamp',1)。

警告: current_time('timestamp',0) 返回GMT + gmt_offset(服务器) + gmt_offset(浏览器)的时间标记——这是一个无意义的组合。

"timestamp"参数值几乎没有任何用处。

用法

 current_time($type, $gmt = 0); 

参数

$type

(字符串)(必需)返回的时间格式。可能的值包括:

  • mysql
  • timestamp

默认值:None

$type

(整数)(可选)所返回时间的时区(GMT或本地)。可能的值包括:

  • 1
  • 0

默认值:0

示例

下面的代码获取当前时间并将参数赋值给变量:

<?php 
$blogtime = current_time('mysql'); 
list( $today_year, $today_month, $today_day, $hour, $minute, $second ) = split( '([^0-9])', $blogtime );
?>

检查结果

将以下代码放入WordPress模板,在另一个时区的服务器(非W/LAMP本地机器)上试运行:

<?php echo "current_time('mysql') returns local server time: " . current_time('mysql') . '<br />'; ?>
<?php echo "current_time('mysql',1) returns GMT: " . current_time('mysql',1) . '<br />'; ?>
<?php echo "current_time('timestamp',1) returns timestamp of server time: " . date('Y-m-d H:i:s',current_time('timestamp',1)); ?>
<?php echo "current_time('timestamp',0) doesn't mean anything: " . date('Y-m-d H:i:s',current_time('timestamp',0)); ?>

更正

如果用户希望current_time('timestamp', $gmt=0)能够正确发挥作用,需要满足以下说明:

说明

函数current_time_fixed("mysql", $gmt)返回格式为“年-月-日 时:分:秒”的时间。函数current_time_fixed("timestamp", $gmt)返回时间作为Unix时间标记。如果$gmt=1,返回的时间为GMT时间;如果$gmt=0,返回的时间为浏览器客户端本地时间(由WordPress选项gmt_offset决定,在“常规”菜单下的“时区”选项中进行设置)。

function current_time_fixed( $type, $gmt = 0 ) {
	$t =  ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * 3600 ) ) );
	switch ( $type ) {
		case 'mysql':
			return $t;
			break;
		case 'timestamp':
			return strtotime($t);
			break;
	}
}
#1
不会用啊