php获取的日期落后21天,PHP日期时间处理 - 冯奎博客 — 再牛逼的梦想,也抵不住你傻逼似的坚持。 — Fengkui Blog...

PHP中对日期进行操作的几个常用函数如下:

date(): 把时间戳格式化为更易读的日期和时间

time(): 获取当前 Unix 时间戳

strtotime(): 将表示时间和日期的字符串转化为相应的时间戳

date() 函数介绍

data() 函数的语法如下:

string date ( string $format [, int $timestamp ] )

format : 必需,规定输出日期字符串的格式

timestamp : 可选,规定整数的 Unix 时间戳。默认是当前的本地时间 time()

返回值是格式化后的时间字符串

// 假定今天是:2019年1月21日

$today = date("Y-m-d H:i:s"); // 2019-01-21 18:52:18 (MySQL DATETIME 格式)

$today = date("F j, Y, g:i a"); // Jan 21, 2019, 6:52 pm

strtotime() 函数介绍

strtotime() 函数语法如下:

int strtotime ( string $time [, int $now = time() ] )

time : 日期/时间字符串

now : 用来计算返回值的时间戳

本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳,其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间

成功则返回时间戳,否则返回 FALSE,在 PHP 5.1.0 之前本函数在失败时返回 -1

echo strtotime("now"), "\n"; // 现在时间戳

echo strtotime("21 January 2019"), "\n"; // 2019年1月21日时间戳

echo strtotime("+1 day"), "\n"; // 距离现在一天后的时间戳

time() 函数介绍

time() 获取当前Unix秒数时间戳,还可以使用 microtime() 获取当前 Unix 时间戳和微秒数,这个函数经常用来计算脚本运行的耗时

mixed microtime ([ bool $get_as_float ] )

如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。

时间戳和时间字符串其他操作

使用 time() 函数,会获取当前时间的 Unix 时间戳,是一个10位的整数,表示自 Unix 纪元(1月1日 1970 00:00:00 GMT)起的当前时间的秒数。

使用 strtotime() 函数,可以将任何英文文本的日期或时间描述解析为 Unix 时间戳。失败则返回 FALSE。应该尽可能使用 YYYY-MM-DD 格式或者使用

使用 date() 函数,可以将时间戳按照指定的格式格式化为时间字符串

使用方法:

$time = time(); // 当前时间戳

var_dump($time); // int(1548068931)

$time_str = date('Y-m-d H:i:s', $time); // 将时间戳转化为相应的时间字符串

var_dump($time_str); // string(19) "2019-01-21 19:08:51"

$time_int = strtotime($time_str); // 将时间字符串转化为时间戳

var_dump($time_int); // int(1548068931)

获取那种基于某个时间一定时间段的时间的做法,可以使用 strtotime(),也可以 time() 获取当前时间然后加上或减去指定时间距离现在的偏移秒数。

获取前一天的时间戳:strtotime('-1 day') 或者 time() - 3600 * 24

获取今天凌晨0点的时间戳:strtotime(date("Y-m-d"), time())

获取今天某个时刻如6点半的时间戳: strtotime(data('Y-m-d')) + 6 * 3600 + 30 * 60

友好时间显示:

if (!function_exists('word_time')) {

/**

* [word_time 传入时间戳,计算距离现在的时间]

* @param [type] $time [时间戳]

* @return [type] [返回计算出的时间]

*/

function word_time($time) {

$time = (int) substr($time, 0, 10);

$int = time() - $time;

$str = '';

if ($int <= 3600*24*7){

$str = '一周内';

}elseif ($int < 3600*24*30){

$str = '一月内';

}else{

$str = '一月前';

}

return $str;

}

}

友好时间可以根据自己需求进行修改,也可根据时间获取一些其他信息,如星座等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值