300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 使用PHP将任意格式的日期转换为Unix时间戳

使用PHP将任意格式的日期转换为Unix时间戳

时间:2022-08-04 20:46:05

相关推荐

使用PHP将任意格式的日期转换为Unix时间戳

在 PHP 中,可以使用 strtotime() 函数将任意格式的日期时间字符串转换为 Unix 时间戳。具体实现可以按照以下步骤:

获取任意格式的日期时间字符串,比如:

$date_str = '-03-15 10:30:00';

使用 strtotime() 函数将日期时间字符串转换为 Unix 时间戳:

$timestamp = strtotime($date_str);

如果转换成功,$timestamp 就会保存 Unix 时间戳,表示自 Unix 纪元(1970 年 1 月 1 日 00:00:00 UTC)以来的秒数。如果转换失败,strtotime() 函数会返回 false。

例如,以下代码将日期字符串转换为 Unix 时间戳:

$date_str = '-03-15 10:30:00';$timestamp = strtotime($date_str);if ($timestamp !== false) {echo $timestamp;} else {echo '转换失败';}

输出结果为:

1647346200

表示该日期时间对应的 Unix 时间戳为 1647346200 秒。

需要注意的是,Excel 中的日期时间格式和 PHP 中的日期时间格式不同,需要进行一些转换。具体实现可以按照以下步骤:

获取 Excel 中的日期时间字符串,比如:

$date_str = '44258.7083333333';

将 Excel 中的日期时间格式转换为 PHP 中的日期时间格式。Excel 中的日期时间格式是以基准日期 1900 年 1 月 1 日为起点,每过一天就加 1,每过一秒就加上相应的秒数。PHP 中的日期时间格式是以基准日期 1970 年 1 月 1 日为起点,每过一秒就加 1。因此,需要将 Excel 中的日期时间值减去基准日期的差值(即 25569 天),再乘以一天的秒数(即 86400 秒),得到相对于 Unix 纪元的秒数。然后再将该秒数加上时区偏移量即可。

$excel_date = $date_str - 25569; // Excel 基准日期与 Unix 基准日期的差值$unix_timestamp = $excel_date * 86400; // 一天的秒数$unix_timestamp += strtotime('1970-01-01 00:00:00') - strtotime('1900-01-01 00:00:00'); // 加上时区偏移量

如果转换成功,$unix_timestamp 就会保存 Unix 时间戳,表示自 Unix 纪元以来的秒数。如果转换失败,strtotime() 函数会返回 false。

例如,以下代码将 Excel 中的日期时间字符串转换为 Unix 时间戳:

$date_str = '44258.7083333333';$excel_date = $date_str - 25569;$unix_timestamp = $excel_date * 86400;$unix_timestamp += strtotime('1970-01-01 00:00:00') - strtotime('1900-01-01 00:00:00');if ($unix_timestamp !== false) {echo $unix_timestamp;} else {echo '转换失败';}

输出结果为:

164700

表示该日期时间对应的 Unix 时间戳为 164700 秒。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。