将DateTime转换为String PHP

Mp *_*ega 204 php datetime

我已经研究了很多关于如何将PHP DateTime对象转换为String的网站.我总是看到"String to DateTime"而不是"DateTime to String"

可以回显PHP DateTime,但我想用PHP字符串函数处理我的DateTime.

我的问题是如何从这种代码开始将PHP dateTime Object变为字符串:

$dts = new DateTime(); //this returns the current date time
echo strlen($dts);
Run Code Online (Sandbox Code Playgroud)

rjz*_*rjz 379

您可以使用该类的format方法DateTime:

$date = new DateTime('2000-01-01');
$result = $date->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)

如果format由于某种原因失败,它将返回FALSE.在某些应用程序中,处理失败的情况可能是有意义的:

if ($result) {
  echo $result;
} else { // format failed
  echo "Unknown Time";
}
Run Code Online (Sandbox Code Playgroud)

  • +1它的工作原理.在进行此转换之前,还能告诉您如何检查null(在同一行).谢谢! (2认同)
  • 嘿@Watt,好点!我扩展了示例以展示如何处理失败的案例。 (2认同)
  • 您忘记了时区,而是使用$ date-> format('c')`或$ date-> format('Ymd H:i:s Z')`或`$ date-> format('Ymd H: i:s T')` (2认同)

小智 14

我找到的最简单的方法是:

$date   = new DateTime(); //this returns the current date time
$result = $date->format('Y-m-d-H-i-s');
echo $result . "<br>";
$krr    = explode('-', $result);
$result = implode("", $krr);
echo $result;
Run Code Online (Sandbox Code Playgroud)

我希望它有所帮助.


Gla*_*ves 14

有一些预定义的格式date_d.php可供使用format:

define ('DATE_ATOM', "Y-m-d\TH:i:sP");
define ('DATE_COOKIE', "l, d-M-y H:i:s T");
define ('DATE_ISO8601', "Y-m-d\TH:i:sO");
define ('DATE_RFC822', "D, d M y H:i:s O");
define ('DATE_RFC850', "l, d-M-y H:i:s T");
define ('DATE_RFC1036', "D, d M y H:i:s O");
define ('DATE_RFC1123', "D, d M Y H:i:s O");
define ('DATE_RFC2822', "D, d M Y H:i:s O");
define ('DATE_RFC3339', "Y-m-d\TH:i:sP");
define ('DATE_RSS', "D, d M Y H:i:s O");
define ('DATE_W3C', "Y-m-d\TH:i:sP");
Run Code Online (Sandbox Code Playgroud)

使用这样:

$date = new \DateTime();
$string = $date->format(DATE_RFC2822);
Run Code Online (Sandbox Code Playgroud)

  • 您可以使用DateTime的常量(例如DateTime :: ISO8601),它使代码更容易阅读. (2认同)

小智 12

echo date_format($date,"Y/m/d H:i:s");
Run Code Online (Sandbox Code Playgroud)