将DateTime转换为String PHP

Convert DateTime to String PHP

我已经研究了很多关于如何将php datetime对象转换为字符串的站点。我总是看到"从字符串到日期时间"而不是"从日期时间到字符串"

php datetime可以被回送,但是我想用php字符串函数处理我的datetime。

我的问题是,如何使php datetime对象成为从此类代码开始的字符串:

1
2
$dts = new DateTime(); //this returns the current date time
echo strlen($dts);


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

1
2
$date = new DateTime('2000-01-01');
$result = $date->format('Y-m-d H:i:s');

如果format因故失效,则返回FALSE。在某些应用程序中,处理失败的情况可能很有意义:

1
2
3
4
5
if ($result) {
  echo $result;
} else { // format failed
  echo"Unknown Time";
}


我发现最简单的方法是:

1
2
3
4
5
6
$date   = new DateTime(); //this returns the current date time
$result = $date->format('Y-m-d-H-i-s');
echo $result ."";
$krr    = explode('-', $result);
$result = implode("", $krr);
echo $result;

希望有帮助。


date_d.php中有一些预定义格式可用于format中,如:

1
2
3
4
5
6
7
8
9
10
11
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");

这样使用:

1
2
$date = new \DateTime();
$string = $date->format(DATE_RFC2822);


1
echo date_format($date,"Y/m/d H:i:s");

缩短使用列表的方式。你可以对每个日期组件做你想做的。

1
2
list($day,$month,$year,$hour,$min,$sec) = explode("/",date('d/m/Y/h/i/s'));
echo $month.'/'.$day.'/'.$year.' '.$hour.':'.$min.':'.$sec;

它对我有效

1
2
3
4
5
$start_time   = date_create_from_format('Y-m-d H:i:s', $start_time);
$current_date = new DateTime();
$diff         = $start_time->diff($current_date);
$aa           = (string)$diff->format('%R%a');
echo gettype($aa);