在 PHP 中转换日期格式

2022-08-30 05:51:11

我正在尝试将日期从转换为(但不是在SQL中);但是我不知道日期函数如何需要时间戳,并且我无法从此字符串中获取时间戳。yyyy-mm-dddd-mm-yyyy

这怎么可能?


答案 1

用途和:strtotime()date()

$originalDate = "2010-03-21";
$newDate = date("d-m-Y", strtotime($originalDate));

(请参阅 PHP 站点上的 strtotimedate 文档。

请注意,这是原始问题的快速解决方案。对于更广泛的转换,您应该真正使用DateTime类来解析和格式化:-)


答案 2

如果你想避免 strtotime 转换(例如,strtotime 无法解析你的输入),你可以使用,

$myDateTime = DateTime::createFromFormat('Y-m-d', $dateString);
$newDateString = $myDateTime->format('d-m-Y');

或者,等效地:

$newDateString = date_format(date_create_from_format('Y-m-d', $dateString), 'd-m-Y');

您首先要为它提供$dateString格式。然后,您将告诉它您想要$newDateString的格式。

或者,如果源格式始终为“Y-m-d”(yyyy-mm-dd),则只需使用DateTime

<?php
    $source = '2012-07-31';
    $date = new DateTime($source);
    echo $date->format('d.m.Y'); // 31.07.2012
    echo $date->format('d-m-Y'); // 31-07-2012
?>

推荐