Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中重新格式化日期时间字符串?_Php_Date_Sorting_Time_Date Sorting - Fatal编程技术网

如何在php中重新格式化日期时间字符串?

如何在php中重新格式化日期时间字符串?,php,date,sorting,time,date-sorting,Php,Date,Sorting,Time,Date Sorting,我从插件收到一个日期时间。我把它放在一个变量中: $datetime = "20130409163705"; 这实际上转化为yyyymmddHHmmss 我需要将其显示为交易时间,但它看起来不合适 我想将其安排为09/04/2013 16:37:05或09-apr-2013 16:37:05 我该如何改变字符串的顺序 至于现在,我认为应该使用substr来分隔日期和时间。我仍然不确定如何添加附加字符和重新安排日期。试试这个 $datetime = "20130409163705"; pri

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

$datetime = "20130409163705"; 
这实际上转化为
yyyymmddHHmmss

我需要将其显示为交易时间,但它看起来不合适

我想将其安排为
09/04/2013 16:37:05
09-apr-2013 16:37:05

我该如何改变字符串的顺序

至于现在,我认为应该使用substr来分隔日期和时间。我仍然不确定如何添加附加字符和重新安排日期。

试试这个

$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

你可以这样做:

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

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


如果要使用
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;
您可以从这一点上找出任何进一步的格式。

对于PHP5>=5.3.0

结果:

09/04/2013 16:37:05
为什么不像下面那样使用date(),试试这个

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

09/04/13 16:37:05

您可以使用
date\u parse\u from\u format()
函数

date\u从\u格式解析\u(字符串$format,字符串$datetime):数组
例子

上述示例将输出:

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] => 
)

检查..您将清楚地了解日期(“Y-m-d H:i:s”,标准时间(“2019-05-13”)您有不同的选择

https://en.functions-online.com/date.html?command={"format":"l jS \\of F Y h:i:s A"}
使用日期():

$format=日期('d/m/y H:i:s',1621371929);
echo$格式;
输出为:

18/05/2114:05:29
使用日期格式():

$date=date\u创建(1621371929);
回显日期格式($date,'d/m/y H:i:s');
输出为:

18/05/2114:05:29
使用DateTime::format():

$date=新的日期时间('2021-05-18 14:05:29');
echo$date->format('d/m/y H:i:s');
输出为:

18/05/2114:05:29

为您提供这三种方法的概述,深入介绍的是DateTime::format()

将满足您的需要。。。pleaseI刚刚发现这个问题很有用,而且是2014年的问题,所以关闭这个问题的人都在大发雷霆。投票决定重新开放。虽然问题显示了一个特定的案例,但其他案例的应用程序很容易看到。通过谷歌找到了这个答案,它为我指明了正确的方向,尽管我的具体情况有所不同。嗨,欢迎来到Stack Overflow!一个指向潜在解决方案的链接总是受欢迎的,但是请在链接周围添加上下文,这样您的其他用户就会知道它是什么以及为什么会出现。始终引用重要链接中最相关的部分。假设页面被移动到另一台服务器,或者直接链接发生了变化——未来的用户将无法从中受益。请看一看。你能进一步解释一下这一行与问题的关系吗?请在你的回答中为未来的用户添加一些解释尼斯一行!我在找这个
https://en.functions-online.com/date.html?command={"format":"l jS \\of F Y h:i:s A"}