55

我从插件收到日期时间。我把它放到一个变量中:

$datetime = "20130409163705"; 

这实际上转化为yyyymmddHHmmss.

我需要将其作为交易时间显示给用户,但它看起来不正确。

我想把它安排成09/04/2013 16:37:05 09-apr-2013 16:37:05

如何进行并更改字符串的顺序?

至于现在我可以认为是使用substr来分隔日期和时间。我仍然不确定如何添加其他字符并重新排列日期。

4

9 回答 9

86

为什么不使用date() 就像下面一样,试试这个

$t = strtotime('20130409163705');
echo date('d/m/y H:i:s',$t);

并将被输出

09/04/13 16:37:05
于 2013-04-10T08:42:41.420 回答
46

对于 PHP 5 >= 5.3.0 http://www.php.net/manual/en/datetime.createfromformat.php

$datetime = "20130409163705"; 
$d = DateTime::createFromFormat("YmdHis", $datetime);
echo $d->format("d/m/Y H:i:s"); // or any you want

结果:

09/04/2013 16:37:05
于 2013-04-10T08:41:47.957 回答
5

date("Y-m-d H:i:s", strtotime("2019-05-13"))

于 2019-05-15T08:41:27.553 回答
2

如果您想使用substr(),您可以像这样轻松添加破折号或斜线..

$datetime = "20130409163705"; 
$yyyy = substr($datetime,0,4);
$mm = substr($datetime,4,6);
$dd = substr($datetime,6,8);
$hh = substr($datetime,8,10);
$MM = substr($datetime,10,12);
$ss = substr($datetime,12,14);
$dt_formatted = $mm."/".$dd."/".$yyyy." ".$hh.":".$MM.":".$ss;

您可以从那一点找出任何进一步的格式。

于 2013-04-10T08:40:46.793 回答
1

试试这个

$datetime = "20130409163705"; 
print_r(date_parse_from_format("Y-m-d H-i-s", $datetime));

输出:

[year] => 2013
[month] => 4
[day] => 9
[hour] => 16
[minute] => 37
[second] => 5
于 2013-04-10T08:37:17.307 回答
0

你可以这样做:

<?php
$datetime = "20130409163705"; 
$format = "YmdHis";

$date = date_parse_from_format ($format, $datetime);
print_r ($date);
?>

您可以查看接受date_parse_from_format()格式值。

于 2013-04-10T08:38:37.200 回答
0
https://en.functions-online.com/date.html?command={"format":"l jS \\of F Y h:i:s A"}
于 2017-09-02T08:47:03.767 回答
0

你有不同的选择。

使用日期():

$format = date('d/m/y H:i:s', 1621371929);
echo $format;

输出是:

18/05/21 14:05:29

使用 date_format():

$date = date_create(1621371929);
echo date_format($date, 'd/m/y H:i:s');

输出是:

18/05/21 14:05:29

使用 DateTime::format():

$date = new DateTime('2021-05-18 14:05:29');
echo $date->format('d/m/y H:i:s');

输出是:

18/05/21 14:05:29

这篇文章给大家大致介绍了这三种方法,而这一种是深入的DateTime::format() 。

于 2021-05-19T06:12:16.990 回答
-1

你可以使用date_parse_from_format()函数...

date_parse_from_format(string $format, string $datetime): array

例子

<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>

上面的示例将输出:

Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] => 
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 1
    [zone_type] => 1
    [zone] => 3600
    [is_dst] => 
)

检查PHP docs ..你会明白的

于 2013-04-10T08:47:07.953 回答