PHP面试题精讲—2021—时间日期格式化在实际项目的应用

Posted 小雨同学的服务器果然有问题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP面试题精讲—2021—时间日期格式化在实际项目的应用相关的知识,希望对你有一定的参考价值。

书山有路勤为径,学海无涯苦作舟。


一、时间日期类型的面试题长什么样子?

1. 写出获取当前时间戳的函数,及打印前一天的时间的方法(格式:年-月-日 时:分:秒)


Time();

Date(Y-m-d H:i:s”,Strtotime(-1 day”));

2. 写出一个函数,参数为年份和月份,输出结果为指定月的天数

function mmm($year,$month){
echo date(“t”,strtotime($year.-.$month.-1));
}

二、知识总结

1. 配置时区

时区是开始一个项目最早的配置项,因为如果你的时区配置不对的话,涉及到时间戳的时间转换,以及输出格式化时间字符串就会有问题。

ini_set('date.timezone', 'Asia/Shanghai');

2.time() microtime() 时间戳 毫秒

time() 函数返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数。

time()函数在实际项目中的使用频率非常高,比如创建时间,更新时间,都会长期使用的。

服务器的时间精度一般是秒级的,但是有的时候比如物联网设备也需要毫秒级的精度。

microtime()

function mkmicrotime() {
  list($msec, $sec) = explode(' ', microtime());
  $msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000);  return $msectime;
}

3. date() 格式化时间戳

date()函数的实际应用场景也是非常非常普遍的,最常见的用法是格式化成年月日时分秒。

date("Y-m-d H:i:s");

除了这个格式最适合国内阅读之外,这也是mysql写入datetime的格式。

此外,除了经典格式化之外,还有

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\\i\\t \\i\\s \\t\\h\\e jS \\d\\a\\y.');   // It is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \\m \\i\\s\\ \\m\\o\\n\\t\\h');     // 17:03:17 m is month
$today = date("H:i:s");                         // 17:16:17

4. mktime() 获取一个日期的时间戳

这个函数的最大作用是计算日期!非常好用!

比如,你需要得到创建当前时间一年零一天的时间戳,单纯的去加时间戳是不对的,因为可能会有闰年的出现。

这时候只要配置date函数格式化当前日期的值,在对应的位置上做加减即可。

echo mktime(date('h'),date('i'),date('s'),date('m'),date('d')+1,date('Y')+1);

他会自动增加月份,判断每月几号,判断闰年,最终得到完美的时间戳。

五、评论区作业

输出是最好的输入,如果你对着小黄鸭都说不明白,怎么又能指望你能自己明白呢?

  1. 如何实现一个日历同时展示多个国家的时间?
    欢迎你在第一时间把思路写在评论区,最好不查资料

六、总结

面试阶段对于时间日期的考察,一般是计算时间和格式化指定日期,我们需要额外记住的是几个常用的日期格式化样式即可。

希望大家都能通过心仪的面试~

以上是关于PHP面试题精讲—2021—时间日期格式化在实际项目的应用的主要内容,如果未能解决你的问题,请参考以下文章

PHP精讲2021—Yii2框架项目中的缓存Cache组件实际应用以及分析问题思路

PHP精讲2021—Yii2框架项目中的缓存Cache组件实际应用以及分析问题思路

PHP面试题精讲—无限级分类/无限分类的递归算法和非递归算法-带源码建议收藏

PHP面试题精讲—无限级分类/无限分类的递归算法和非递归算法-带源码建议收藏

PHP面试题精讲 — 面向对象类

PHP面试题精讲 — 面向对象类