强大的strtotime函数

443 查看

PHP处理时间的函数功能强大,相信大家都有目共睹,日常中如果涉及到很多时间处理方面的需求, strtotime函数的以下用法绝对让你面对时间处理不再发愁!

非常直观的一些用用法

  • 获取相比当前时间前N天的时间戳

$n = 2;//这个取值可以随意改变
$t = strtotime("-{$n} days");//相比于当前时间戳减去 $n*86400 s的时间
$t = strtotime("-{$n} days 00:00:00");//当前日期的前n天的0点
$t = strtotime("-{$n} days 23:00:00");//当前日期的前n天的23点
  • 获取相比当前时间后N天的时间戳

$n = 2;//这个取值可以随意改变
$t = strtotime("+{$n} days");//相比于当前时间戳加上 $n*86400 s的时间
$t = strtotime("+{$n} days 00:00:00");//当前日期的后n天的0点
$t = strtotime("+{$n} days 23:00:00");//当前日期的后n天的23点
  • 获取指定日期前/后N天的时间戳

$n = 2;//这个取值可以随意改变
$date = "2015-02-27";
$t = strtotime("+{$n} days {$date}");//相比于当前时间戳加上 $n*86400 s的时间
$t = strtotime("+{$n} days {$data} 00:00:00");//当前日期的后n天的0点
$t = strtotime("+{$n} days {$data} 23:00:00");//当前日期的后n天的23点

其他一些用法

$t = strtotime("yesterday");
$t = strtotime("yesterday midnight");
$t = strtotime("yesterday 00:00:00");
//以上三个结果一样,但是为了严谨期间,如果需要时分秒,给出精确时间
$t = strtotime("tomorrow");
$t = strtotime("tomorrow midnight");
$t = strtotime("tomorrow 00:00:00");

$year = 2015;
$month = 2;
$t = strtotime("first day of {$year}-{$month}");//指定月份的第一天
$t = strtotime("first day of {$year}-{$month} 11:00:00");//指定月份的第一天11点
$t = strtotime("last day of {$year}-{$month} 11:00:00");//指定月份的最后一天
$t = strtotime("last day of {$year}-{$month} 11:00:00");//指定月份的最后一天11点

以上仅仅是一小部分

ps

使用 +|- days[month|year] month和year可能出现的结果不是预期结果,慎用

一些strtotime中可以使用的关键词

时间参数

  • am(上午)

  • pm(下午)

  • year: "next year" 明年

  • month : "last month" 上个月

  • fortnight(两周) : "a fortnight ago" 两周前

  • week

  • day

  • hours

  • minute

  • second或者 sec

计算顺序

-ago 从当前时间往前计算

    • "24 hours ago"(hour也可以)

    • "3 years ago"(year也可以)

    • "12 month ago"

    • first-twelfth(连续的)

    • last

    • next

    • previos

    时区

    • utc(标准0时区)

    • cct(中国东八区)

    要想处理时间快,请认准 strtotime(str,timestamp)