PHP 日期

几个常用日期函数

$showtime = date("Y-m-d H:i:s");
echo(strtotime("now") . "<br>");
echo(strtotime("15 October 1980") . "<br>");
echo(strtotime("+5 hours") . "<br>");
echo(strtotime("+1 week") . "<br>");
echo(strtotime("+1 week 3 days 7 hours 5 seconds") . "<br>");
echo(strtotime("next Monday") . "<br>");
echo(strtotime("last Sunday"));

Strtotime

日期问题

var_dump(date("Y-m-d", strtotime("-1 month", strtotime("2017-03-31"))));
//输出2017-03-03
var_dump(date("Y-m-d", strtotime("+1 month", strtotime("2017-08-31"))));
//输出2017-10-01
var_dump(date("Y-m-d", strtotime("next month", strtotime("2017-01-31"))));
//输出2017-03-03
var_dump(date("Y-m-d", strtotime("last month", strtotime("2017-03-31"))));
//输出2017-03-03

解决方案

var_dump(date("Y-m-d", strtotime("last day of -1 month", strtotime("2017-03-31"))));
//输出2017-02-28
var_dump(date("Y-m-d", strtotime("first day of +1 month", strtotime("2017-08-31"))));
////输出2017-09-01
var_dump(date("Y-m-d", strtotime("first day of next month", strtotime("2017-01-31"))));
////输出2017-02-01
var_dump(date("Y-m-d", strtotime("last day of last month", strtotime("2017-03-31"))));
////输出2017-02-28

Date参数详解

  • a – “am” 或是 “pm”
  • A – “AM” 或是 “PM”
  • d – 几日,二位数字,若不足二位则前面补零; 如: “01” 至 “31”
  • D – 星期几,三个英文字母; 如: “Fri”
  • F – 月份,英文全名; 如: “January”
  • h – 12 小时制的小时; 如: “01” 至 “12”
  • H – 24 小时制的小时; 如: “00” 至 “23”
  • g – 12 小时制的小时,不足二位不补零; 如: “1” 至 12″
  • G – 24 小时制的小时,不足二位不补零; 如: “0” 至 “23”
  • i – 分钟; 如: “00” 至 “59”
  • j – 几日,二位数字,若不足二位不补零; 如: “1” 至 “31”
  • l – 星期几,英文全名; 如: “Friday”
  • m – 月份,二位数字,若不足二位则在前面补零; 如: “01” 至 “12”
  • n – 月份,二位数字,若不足二位则不补零; 如: “1” 至 “12”
  • M – 月份,三个英文字母; 如: “Jan”
  • s – 秒; 如: “00” 至 “59”
  • S – 字尾加英文序数,二个英文字母; 如: “th”,”nd”
  • t – 指定月份的天数; 如: “28” 至 “31”
  • U – 总秒数
  • w – 数字型的星期几,如: “0” (星期日) 至 “6” (星期六)
  • Y – 年,四位数字; 如: “1999”
  • y – 年,二位数字; 如: “99”
  • z – 一年中的第几天; 如: “0” 至 “365”
superbad.cn