一尘不染

从yyyymmdd格式转换为PHP日期

php

我有以下格式的日期(yyyymmdd,18751104,19140722)…将其转换为date()的最简单方法是什么?或者使用mktime()和子字符串是我的最佳选择…?


阅读 712

收藏
2020-05-29

共1个答案

一尘不染

使用strtotime()含日期到字符串转换Unix时间戳

<?php
// both lines output 813470400
echo strtotime("19951012"), "\n",
     strtotime("12 October 1995");
?>

您可以将结果作为第二个参数传递date()给自己重新格式化日期:

<?php
// prints 1995 Oct 12
echo date("Y M d", strtotime("19951012"));
?>

注意

strtotime() 在1970年Unix时代之前的日期将失败。

另一种适用于1970年之前的日期的替代方法:

<?php
// Returns the year as an offset since 1900, negative for years before
$parts = strptime("18951012", "%Y%m%d");
$year = $parts['tm_year'] + 1900; // 1895
$day = $parts['tm_mday']; // 12
$month = $parts['tm_mon']; // 10
?>
2020-05-29