Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.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
如何提取';格式字符串';a';日期字符串';在PHP中_Php_Datetime_Format - Fatal编程技术网

如何提取';格式字符串';a';日期字符串';在PHP中

如何提取';格式字符串';a';日期字符串';在PHP中,php,datetime,format,Php,Datetime,Format,日期时间从外部资源读取并存储在$dt中,可以是任何有效的PHP日期时间格式(有效表示日期时间已经由包含所述字母的字符串格式化) 我需要做的是获取日期时间字符串的格式,这样在根据系统需要处理日期之后,我可以将其重新格式化为相同的字符串并存储在数据库中。简单地说:执行与DateTime::format方法相反的操作 是否有任何特定的方法可以提取格式化日期时间的“格式字符串”?或可用代码?这是不可能的,因为格式化的日期不能包含足够的信息。您必须编写一组regexp来匹配真正用作输入的格式—一个接一个。

日期时间从外部资源读取并存储在$dt中,可以是任何有效的PHP日期时间格式(有效表示日期时间已经由包含所述字母的字符串格式化)

我需要做的是获取日期时间字符串的格式,这样在根据系统需要处理日期之后,我可以将其重新格式化为相同的字符串并存储在数据库中。简单地说:执行与DateTime::format方法相反的操作


是否有任何特定的方法可以提取格式化日期时间的“格式字符串”?或可用代码?

这是不可能的,因为格式化的日期不能包含足够的信息。您必须编写一组regexp来匹配真正用作输入的格式—一个接一个。

您可以将它们都带到unix时间戳,然后使用date获得标准化表单。或者,您可以首先标准化您的输入(这通常是更容易的选择-因为错误捕获将是一件麻烦事!)


当然,如果您的输入很奇怪,您可能会从strotime中得到一些有趣的输出。

请注意,格式化日期可能没有包含足够的信息来推断其格式:
01/02/03
可以是月-日-年或日-月-年或其他完全不同的形式。当然,如果不精确,也有可能。如果strotime()等可以检测任意字符串中的日期,为什么我们不能简单地反转逻辑?
\\$dt your datetime input
$timestring = strtotime($dt);
$datetime = date("H:i:s j M Y", $timestring);