最近在写脚本时 用到了许多时间函数 做了个整理 以备自己在之后开发时使用
函数 | 说明 | 返回值 |
---|---|---|
strtotime | 将任何英文文本的日期时间描述解析为 | 特定Unix时间戳 |
time | 返回当前的 Unix 时间戳 | Unix时间戳 |
microtime | 返回当前 Unix 时间戳和微秒数 | Unix 时间戳和微秒数 |
date | 格式化一个本地时间/日期 | String |
date_default_timezone_set | 设置时区函数 | NULL |
FROM_UNIXTIME | (mysql)时间戳格式化 | String |
UNIX_TIMESTAMP | (mysql)日期转换时间戳 | Unix 时间戳 |
- strtotime
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
注意点 strtotime 函数还有一个特别的一个用法 就是可以随便指定一个时间 如下:
echo strtotime("2016-1-13 14:00:39").PHP_EOL;
strtotime 不传递参数会报出Warning!
- time()
$nextWeek = time() + (7 * 24 * 60 * 60);
// 7 days; 24 hours; 60 mins; 60secs
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
// or using strtotime():
echo 'Next Week: '. date('Y-m-d', strtotime('+1 week')) ."\n";
- microtime
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
// Sleep for a while
usleep(100);
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "Did nothing in $time seconds\n";
- date
参数 | 含义 |
---|---|
d | 月份中的第几天,有前导零的 2 位数字 |
N | ISO-8601 格式数字表示的星期中的第几天 |
w | 星期中的第几天,数字表示 |
W | 格式年份中的第几周,每周从星期一开始 |
n | 数字表示的月份,没有前导零 |
t | 给定月份所应有的天数 |
echo date('Y-m-d H:i:s').PHP_EOL;
Mysql上的常用函数
- FROM_UNIXTIME
SELECT FROM_UNIXTIME(ctime) AS ctime , id, NAME FROM employee ;
- FROM_UNIXTIME
SELECT FROM_UNIXTIME(ctime) AS ctime , id, NAME FROM employee ;
- UNIX_TIMESTAMP
SELECT id, NAME FROM employee
WHERE ctime > UNIX_TIMESTAMP('2016-6-1');