首页 >后端开发 >PHP问题 >php转成时间戳的实现

php转成时间戳的实现

PHPz
PHPz原创
2023-03-29 10:13:551544浏览

PHP是一种流行的开源脚本语言,广泛用于Web开发中。其中,时间戳是一种非常重要的数据类型,它表示从1970年1月1日0时0分0秒起经过的秒数。在PHP中,将时间字符串转换为时间戳非常方便,本文将介绍一些PHP转换时间戳的方法。

方法一:strtotime()

strtotime()函数是PHP中非常方便的时间字符串转换为时间戳的函数。我们可以通过将一个表示日期和时间的字符串传入该函数来返回一个相应的时间戳。这个时间戳的值表示自1970年1月1日00:00:00以来经过的秒数。

例如,下面的PHP代码将当前日期和时间转换为时间戳:

echo strtotime("now");

输出结果:

1623862003

在上面的代码中,我们将字符串“now”传递给strtotime()函数。它会将该字符串解释为当前日期和时间,并返回对应的时间戳。

同样,我们可以使用strtotime()函数将任何表示日期和时间的字符串转换为时间戳。例如,下面的代码将一个表示“2022年1月1日”的字符串转换为时间戳:

echo strtotime("2022-01-01");

输出结果:

1640947200

在上面的代码中,我们将“2022-01-01”字符串传递给strtotime()函数。它会将该字符串解释为2022年1月1日零点,并返回对应的时间戳。

值得注意的是,strtotime()函数有一些不支持的日期和时间格式。例如,以下格式的时间字符串不支持:

  • "yyyy/mm/dd"
  • "yyyy.mm.dd"
  • "yyyy mm dd"

在这些情况下,我们需要使用其他方法将时间字符串转换为时间戳。

方法二:DateTime类

DateTime类是PHP 5.2及更高版本中定义的一个核心类,它提供了非常方便的日期和时间操作方法。其中,DateTime类的createFromFormat()方法可以将日期和时间字符串转换为时间戳。

例如,下面的PHP代码将一个表示“2022年1月1日”的字符串转换为时间戳:

$datetime = DateTime::createFromFormat('Y-m-d H:i:s', '2022-01-01 00:00:00');
echo $datetime->getTimestamp();

输出结果:

1640947200

在上面的代码中,我们首先通过createFromFormat()方法创建了一个DateTime对象,它将“2022-01-01 00:00:00”解释为一个日期和时间对象。然后,我们使用DateTime对象的getTimestamp()方法获取对应的时间戳。

需要注意的是,DateTime::createFromFormat()方法需要两个参数。第一个参数是日期和时间格式,第二个参数是需要转换为时间戳的日期和时间字符串。例如,上面代码中的“Y-m-d H:i:s”表示日期和时间的格式为“年-月-日 时:分:秒”。

方法三:mktime()函数

mktime()函数也是PHP中非常方便的将日期和时间转换为时间戳的函数。与strtotime()函数不同的是,mktime()函数需要我们分别传入年、月、日、时、分、秒等参数来获得对应的时间戳。

例如,下面的PHP代码将一个表示“2022年1月1日”的字符串转换为时间戳:

echo mktime(0, 0, 0, 1, 1, 2022);

输出结果:

1640947200

在上面的代码中,我们使用mktime()函数传入了年(2022)、月(1)、日(1)、时(0)、分(0)、秒(0)等参数,并返回对应的时间戳。

需要注意的是,mktime()函数对于无效的日期和时间值(例如2月30日)会返回-1,因此在使用mktime()函数时需要注意日期和时间的合法性。

总结

本文介绍了三种PHP转换时间戳的方法:strtotime()函数、DateTime类和mktime()函数。其中,strtotime()函数是最为方便的一种方法,可以将各种日期和时间字符串转换为时间戳。而DateTime类和mktime()函数则提供了更加灵活的日期和时间操作方法,可以根据具体情况选择使用。

以上是php转成时间戳的实现的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn