0

我正在从数据库中检索格式为 YYYYMMDD 的日期。它是一个 wordpress 值,必须像这样存储,以便我使用它执行适用于 wordpress 的特定查询。

我想将它转换为无前导零日和短月份,例如 3 DEC,对于 20121203。但是 php 的日期函数说它需要一个 unix 时间戳,所以我需要先将其转换为这样才能操作它。我怎样才能做到这一点?

4

1 回答 1

1

strtotime应该能够将该格式转换为 UNIX 时间戳

$date = '20120101';
echo date('j M', strtotime($date));

// output: 1 Jan

顺便说一句,这也取决于您的语言环境设置。

编辑:重要提示:如果日期不明确,strtotime 将返回 false!

您还可以使用该mktime()函数,它接受小时、分钟、秒、月、日、年的整数值来生成 unix 时间戳:

$year = 2012;
$month = 1;
$day = 1;

$timestamp = mktime(0,0,0,$month,$day,$year);
echo date('j M', $timestamp);

// output: 1 Jan

编辑:另一种方法是从已经格式化的数据库中检索值(假设 MySQL):

SELECT UNIX_TIMESTAMP(20120101)

// outputs 1325372400 (== mktime(0,0,0,1,1,2012))
于 2012-11-28T15:09:12.610 回答