博客
关于我
php--------获取当前时间、时间戳
阅读量:802 次
发布时间:2023-02-28

本文共 1821 字,大约阅读时间需要 6 分钟。

PHP 中时间与时间戳操作指南

1. 时间获取方法

在 PHP 中,获取时间的方法多样,以下是常用的两种:

  • date():这个函数用于根据指定格式格式化日期和时间。如果提供时间戳参数,其值会被用于计算。
  • time():返回当前时间的 Unix 时间戳,没有参数时,默认获取当前时间。
  • strtotime():将英文日期时间描述解析为 Unix 时间戳,接受时间字符串和可选的当前时间参数。

2. date() 格式与示例

date() 函数的格式化字符串包含多种字母代码,每个字母代表不同的时间元素。以下是常见格式代码及其含义:

  • aA:表示 AM 或 PM。
  • d:两位数字表示日期,不足两位前补零。
  • D:用英文单词表示星期几(如:Fri)。
  • F:用英文全名表示月份(如:January)。
  • hH:表示 12 小时或 24 小时制的小时。
  • i:表示分钟。
  • mn:表示月份,两位数字,n 不补零。
  • s:表示秒。
  • Y:表示四位数的年份。
  • y:表示两位数的年份。

示例

// 获取当前年月日echo date('Y-m-d');// 输出:2012-03-22// 获取年月日和小时分钟秒echo date('Y-m-d H:i:s');// 输出:2012-03-22 23:00:00// 获取带时区的日期echo date('Y-m-d H:i:s', time());// 输出:2012-03-22 23:00:00

3. strtotime() 功能解析

strtotime() 函数能够解析英文日期时间字符串,返回对应的 Unix 时间戳。它的强大之处在于支持时间增减操作:

示例

// 获取指定日期的时间戳echo strtotime('2012-03-22');// 输出:1332427715// 获取当前日期的时间戳echo strtotime(date('Y-d-m'));// 输出:1332427715// 获取未来或过去的日期echo date('Y-m-d H:i:s', strtotime('+1 day'));// 输出:2013-03-23 23:00:00// 获取上个星期四的时间echo date('Y-m-d H:i:s', strtotime('last Thursday'));// 输出:2012-03-15 00:00:00

4. 获取当前时间的毫秒数

PHP 提供 microtime() 函数,返回当前时间的微秒数。以下是获取毫秒数的方法:

function getMillisecond() {    list($s1, $s2) = explode(' ', microtime());    return (float)sprintf('%.0f', (floatval($s1) + floatval($s2)) * 1000);}

说明

  • microtime() 返回的是数组,包含秒和微秒部分。
  • 通过将秒和微秒相加,再乘以 1000,得到当前时间的毫秒数。

5. 时区设置问题

在实际开发中,由于时区设置不一致,可能导致获取到的时间与实际时间相差 8 小时。以下是解决方法:

  • 修改 PHP 配置文件:在 php.ini 中找到 date.timezone,将其设置为 Asia/Shanghai

    date.timezone = Asia/Shanghai
  • 动态设置时区:在程序开始时调用 date_default_timezone_set() 函数:

    date_default_timezone_set('Asia/Shanghai');
  • 注意:以上两种方法均可使用,个人可以根据需求选择。

    6. 其他时间操作示例

    • 获取当前时间戳:

      echo time(); // 输出:1332427715
    • 将日期字符串转换为时间戳:

      echo strtotime('2012-03-22 23:30:33'); // 输出:1332427715
    • 日期格式化:

      echo date('Y年m月d日', strtotime('2012-03-22'));// 输出:2012年3月22日
    • 时间戳转换为日期:

      echo date('Y-m-d', 1332427715);// 输出:2012-03-22

    通过以上方法,可以方便地在 PHP 开发中进行时间和时间戳的操作。

    转载地址:http://gztfk.baihongyu.com/

    你可能感兴趣的文章