Jul
29
参考了杜江的《PHP5与MySQL5 Web开发技术详解》p106到p112之间的内容以及php_manual
1. 设置时区为中国的时区
date_default_timezone_set("PRC");
可以修改php.ini中的date.timezone参数来达到同样的效果
2. 取得时间戳
int time()
函数返回一个31bit的整数,表示1970年1月1日到现在经过的秒数.
函数的返回值是与时区无关的,应该是以UTC时间为标准
3. 检查输入的日期是否合法
bool checkdate(int month, int day, int year);
比如checkdate(4, 31, 2008)返回false,因为4月没有31日
4. 将时间戳转化为字符串返回
string date(string format [, int timestamp]);
该函数返回format指定的时间或时间格式字符串,如果使用了timestamp参数,就转换该timestamp,否则使用当前的时间戳。
该函数的输出和当前设置的时区有关系,参见第一条
format包含有很多格式,可以自定义组合,详细列表参见php_manual。
示例:
echo date("Y-m-d G:i:s"); //输出2008-07-29 10:46:31
echo date("y-n-j"); //输出短格式 07-6-16
echo date("Y年m月d日"); //输出2008年07月29日
5. 以数组形式取出时间日期信息
array getdate([int timestamp])
如果指定timestamp,就将timestamp转换为数组,否则就使用当前的timestamp
输出与当前时区有关。
转换后的信息存储在一个数组中,示例如下:
print_r(getdate());
输出如下:
Array
(
[seconds] => 34 //秒
[minutes] => 50 //分
[hours] => 10 //时
[mday] => 29 //每月第几天
[wday] => 2 //每周第几天
[mon] => 7 //月
[year] => 2008 //年
[yday] => 210 //每年第几天
[weekday] => Tuesday //星期的英文表示
[month] => July //月份的英文表示
[0] => 1217299834 //时间戳
)
6. 把年月日时分秒转化为时间戳
int mktime(int hour, int minute, int second, int month, int day, int year)
输出和当前时区有关。
例:
echo mktime(10, 54, 0, 7, 29, 2008) . "\n";
date_default_timezone_set("PRC");
echo mktime(10, 54, 0, 7, 29, 2008) . "\n";
输出为
1217328840
1217300040
7. 给出更精确的时间
mixed microtime()
该函数返回当前 Unix 时间戳和微秒数
具体格式是一个用空格分隔的字符串,前一半是用小数表示的秒数,后一半是Unix时间戳。
示例:
以下函数返回一个表示当前时间的浮点数(小数部分表示了微秒)
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
8. 其他日期和时间函数
date_default_timezone_get() 取得默认的时区
strtotime() 将任何英文文本的日期时间描述解析为 Unix 时间戳
strftime() 根据区域设置格式化本地时间/日期
gmmmktime() 取得 GMT 日期的 UNIX 时间戳
gmdate() 格式化一个 GMT/UTC 日期/时间
*另:php和mysql的timestamp
php中的timestamp是从UTC标准时间1970.1.1开始的秒数
而mysql中的timestamp类型是一个时间日期字符串
建议在mysql中用一个整数保存时间,php读取出该数后用date()函数转换输出
==============华丽的分割线 added on 2009-1-25==================
补充两个好玩的简单的函数哦:把时间转化为易读的字符串,再转化回去
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
1. 设置时区为中国的时区
date_default_timezone_set("PRC");
可以修改php.ini中的date.timezone参数来达到同样的效果
2. 取得时间戳
int time()
函数返回一个31bit的整数,表示1970年1月1日到现在经过的秒数.
函数的返回值是与时区无关的,应该是以UTC时间为标准
3. 检查输入的日期是否合法
bool checkdate(int month, int day, int year);
比如checkdate(4, 31, 2008)返回false,因为4月没有31日
4. 将时间戳转化为字符串返回
string date(string format [, int timestamp]);
该函数返回format指定的时间或时间格式字符串,如果使用了timestamp参数,就转换该timestamp,否则使用当前的时间戳。
该函数的输出和当前设置的时区有关系,参见第一条
format包含有很多格式,可以自定义组合,详细列表参见php_manual。
示例:
echo date("Y-m-d G:i:s"); //输出2008-07-29 10:46:31
echo date("y-n-j"); //输出短格式 07-6-16
echo date("Y年m月d日"); //输出2008年07月29日
5. 以数组形式取出时间日期信息
array getdate([int timestamp])
如果指定timestamp,就将timestamp转换为数组,否则就使用当前的timestamp
输出与当前时区有关。
转换后的信息存储在一个数组中,示例如下:
print_r(getdate());
输出如下:
Array
(
[seconds] => 34 //秒
[minutes] => 50 //分
[hours] => 10 //时
[mday] => 29 //每月第几天
[wday] => 2 //每周第几天
[mon] => 7 //月
[year] => 2008 //年
[yday] => 210 //每年第几天
[weekday] => Tuesday //星期的英文表示
[month] => July //月份的英文表示
[0] => 1217299834 //时间戳
)
6. 把年月日时分秒转化为时间戳
int mktime(int hour, int minute, int second, int month, int day, int year)
输出和当前时区有关。
例:
echo mktime(10, 54, 0, 7, 29, 2008) . "\n";
date_default_timezone_set("PRC");
echo mktime(10, 54, 0, 7, 29, 2008) . "\n";
输出为
1217328840
1217300040
7. 给出更精确的时间
mixed microtime()
该函数返回当前 Unix 时间戳和微秒数
具体格式是一个用空格分隔的字符串,前一半是用小数表示的秒数,后一半是Unix时间戳。
示例:
以下函数返回一个表示当前时间的浮点数(小数部分表示了微秒)
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
8. 其他日期和时间函数
date_default_timezone_get() 取得默认的时区
strtotime() 将任何英文文本的日期时间描述解析为 Unix 时间戳
strftime() 根据区域设置格式化本地时间/日期
gmmmktime() 取得 GMT 日期的 UNIX 时间戳
gmdate() 格式化一个 GMT/UTC 日期/时间
*另:php和mysql的timestamp
php中的timestamp是从UTC标准时间1970.1.1开始的秒数
而mysql中的timestamp类型是一个时间日期字符串
建议在mysql中用一个整数保存时间,php读取出该数后用date()函数转换输出
==============华丽的分割线 added on 2009-1-25==================
补充两个好玩的简单的函数哦:把时间转化为易读的字符串,再转化回去
date_default_timezone_set("PRC"); //先设置时区哈
function time2str($timestamp = -1){
if($timestamp == -1) $timestamp = time();
return date("Y-m-d H:i:s", $timestamp);
}
function str2time($str){
list($Y, $m, $d, $H, $i, $s) = split(" |-|:", $str);
return mktime($H, $i, $s, $m, $d, $Y);
}
function time2str($timestamp = -1){
if($timestamp == -1) $timestamp = time();
return date("Y-m-d H:i:s", $timestamp);
}
function str2time($str){
list($Y, $m, $d, $H, $i, $s) = split(" |-|:", $str);
return mktime($H, $i, $s, $m, $d, $Y);
}
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
123
2010-4-23 20:00
fghfdh
分页: 1/1
1

