日期/时间函数(汇总)

php 自身带有很多处理日期时间的函数,有些使用场景我们不熟悉的,就会封装自定义函数进行处理。其实很多场景,都可以php内置的函数进行处理,简洁高效。例如判断一个时间时都是合法日期checkdate (),判断是否是闰年gmdate(“L”)等等。

';
    var_dump($val);
    echo '
'; } /** * checkdate — 验证一个格里高里日期 * bool checkdate ( int $month , int $day , int $year ) * 检查由参数构成的日期的合法性。如果每个参数都正确定义了则会被认为是有效的。 * 参数 * month 的值是从 1 到 12。 * Day 的值在给定的 month 所应该具有的天数范围之内,闰年已经考虑进去了。 * year 的值是从 1 到 32767。 * * 返回值:如果给出的日期有效则返回 TRUE,否则返回 FALSE。 */ viewer(checkdate(12, 31, 2000));//bool(true) viewer(checkdate(2, 29, 2001));//bool(false) 2001年没有2月29日这一天 //date_add 从指定日期添加日、月、年、时、分和秒。 $date=date_create("1980-10-15"); date_add($date,date_interval_create_from_date_string("10 days 10 hours 21 minues 2 years")); date_add($date,date_interval_create_from_date_string("10 days")); viewer(date_format($date,"Y-m-d H:i:s"));//string(19) "1982-11-04 10:21:00" //date_sub — 从指定日期减去日、月、年、时、分和秒。 $date=date_create("2016-09-29"); date_sub($date,date_interval_create_from_date_string("90 days")); viewer(date_format($date,"Y-m-d"));//string(10) "2016-07-01" //date_create_from_format 返回根据指定格式进行格式化的新的 DateTime 对象。 $date=date_create_from_format("j-M-Y","25-Sep-2016"); viewer(date_format($date,"Y/m/d"));//string(10) "2016/09/25" //date_create — 返回一个新的 DateTime 对象,然后格式化日期: $date=date_create("2016-09-14"); viewer(date_format($date,"Y/m/d"));//string(10) "2016/09/14" //date_date_set —返回一个新的 DateTime 对象,设置一个新的日期,然后格式化该日期: $date=date_create(); date_date_set($date,2020,10,15); viewer(date_format($date,"Y/m/d"));//string(10) "2020/10/15" //date_default_timezone_get — 取得一个脚本中所有日期时间函数所使用的默认时区 viewer(date_default_timezone_get());//string(13) "Asia/Shanghai" //date_default_timezone_set — 设定用于一个脚本中所有日期时间函数的默认时区 date_default_timezone_set("Asia/Chongqing"); viewer(date_default_timezone_get());//string(14) "Asia/Chongqing" //date_diff — 计算两个日期间的差值: $date1=date_create("1984-01-28"); $date2=date_create("1980-10-15"); $diff=date_diff($date1,$date2); viewer($diff->format("%a days"));//string(10) "1200 days" //date_format — 返回一个新的 DateTime 对象,然后格式化该日期: $date=date_create("2016-09-25"); viewer(date_format($date,"Y/m/d H:i:s"));//string(19) "2016/09/25 00:00:00" //date_get_last_errors — 返回解析日期字符串时的警告和错误: date_create("aecubdjpoi%&&/"); viewer(date_get_last_errors()); //date_isodate_set — date_isodate_set() 函数根据 ISO 8601 标准设置日期,使用周和天的偏移量(而不是使用一个具体的日期)。 //date_isodate_set(object,year,week,day); $date=date_create(); date_isodate_set($date,2019,1,2);//2019年第一个周的第二天 viewer(date_format($date,"Y-m-d"));//string(10) "2019-01-01" //date_modify — 修改时间戳。 $date=date_create("2016-09-25"); date_modify($date,"+4 days"); viewer(date_format($date,"Y-m-d"));//string(10) "2016-09-29" //date_parse — 返回带有关于指定日期的详细信息的关联数组。 viewer(date_parse("2013-05-01 12:30:45.5")); //date_sun_info — 返回包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组 echo "

日期:2016 年 1 月 1 日:

"; $sun_info=date_sun_info(strtotime("2016-01-01"),31.7667,35.2333); print_r($sun_info); foreach ($sun_info as $key=>$val) { echo "$key: " . date("H:i:s",$val) . "
"; } //date_sunrise — 返回给定的日期与地点的日出时间 echo("上海,中国:日期:" . date("D M d Y")); echo("
日出时间:"); echo(date_sunrise(time(),SUNFUNCS_RET_STRING,31.22,121.47,90,8)); echo '
'; //date_sunset — 返回给定的日期与地点的日落时间 echo("上海,中国:日期:" . date("D M d Y")); echo("
日出时间:"); echo(date_sunrise(time(),SUNFUNCS_RET_STRING,31.22,121.47,90,8)); echo '
'; //date_time_set — 用于设置时间 $date=date_create("2016-09-25"); date_time_set($date,12,36); print_r(date_format($date,"Y-m-d H:i:s"));//2016-09-25 12:36:00 echo '
'; //date_timestamp_get — 返回时间戳 $date=date_create(); echo date_timestamp_get($date); echo '
'; echo time(); //date — 格式化一个本地时间/日期 //getdate — 取得日期/时间信息 viewer(getdate()); //返回带有与时间戳相关的信息的关联数组: /* [seconds] - 秒 [minutes] - 分 [hours] - 小时 [mday] - 一个月中的第几天 [wday] - 一周中的第几天 [mon] - 月 [year] - 年 [yday] - 一年中的第几天 [weekday] - 星期几的名称 [month] - 月份的名称 [0] - 自 Unix 纪元以来经过的秒数 */ //gettimeofday — 取得当前时间 // 输出 gettimeofday() 返回的数组 print_r(gettimeofday()); echo "
"; // 输出 gettimeofday() 返回的浮点数 echo gettimeofday(true) . "
"; //gmdate — 格式化一个 GMT/UTC 日期/时间 // 输出周几 echo gmdate("l") . "
"; //是否是闰年!!! echo gmdate("L") . "
"; // 输出周几、日、月、年,时间,上午或下午 echo gmdate("l jS \of F Y h:i:s A") . "
"; // 输出 October 3, 1975 was on a Friday echo "Oct 3, 1975 was on a ".gmdate("l", mktime(0,0,0,10,3,1975)) . "
"; // 在 format 参数中使用常量 echo gmdate(DATE_RFC822) . "
"; // 输出类似:1975-10-03T00:00:00+00:00 echo gmdate(DATE_ATOM,mktime(0,0,0,10,3,1975)); //gmmktime — 取得 GMT 日期的 UNIX 时间戳 //gmstrftime — 根据区域设置格式化 GMT/UTC 时间/日期 //idate — 将本地时间日期格式化为整数 echo '
'; echo idate("L",time()) . "
";//是否是闰年 //localtime — 取得本地时间 //microtime — 返回当前 Unix 时间戳和微秒数 echo '
'; echo microtime(); //mktime — 取得一个日期的 Unix 时间戳 //strftime — 根据区域设置格式化本地时间/日期 //strptime — 解析由 strftime 生成的日期/时间 //strtotime — 将任何字符串的日期时间描述解析为 Unix 时间戳 echo '
'; echo(strtotime("now") . "
"); echo(strtotime("15 October 1980") . "
"); echo(strtotime("+5 hours") . "
"); echo(strtotime("+1 week") . "
"); echo(strtotime("+1 week 3 days 7 hours 5 seconds") . "
"); echo(strtotime("next Monday") . "
"); echo date('Y-m-d',(strtotime("last Sunday"))); //time — 返回当前的 Unix 时间戳

你可能感兴趣的:(php总结)