我有一个像这样的变量
$string = '2019-10-07T19:00:00+07:00';
它是ISO8601格式的日期时间。 我怎么只能得到日期或时间?
或者有什么方法可以将其转换为另一种格式?
like:
$str = '2019-10-07'
谢谢您的帮助!
答案 0 :(得分:2)
最简单的方法是将您的字符串转换为php时间(整数) 然后仅显示该时间的年,月和日。
$string = '2019-10-07T19:00:00+07:00';
echo $string;
echo "</br>";
echo date("Y-m-d", strtotime($string));
> result :
> 2019-10-07T19:00:00+07:00
> 2019-07-10
https://www.php.net/manual/en/function.date.php
https://www.php.net/manual/en/function.strtotime.php
希望有帮助
答案 1 :(得分:0)
输入字符串包含时区信息(+07:00)。 DateTime类可确保您使用此时区,而不管服务器的区域设置如何。
$string = '2019-10-07T01:00:00+07:00';
$dt = date_create($string);
var_dump($dt);
//object(DateTime)#1 (3) { ["date"]=> string(26) "2019-10-07 01:00:00.000000" ["timezone_type"]=> int(1) ["timezone"]=> string(6) "+07:00" }
echo $dt->format('Y-m-d');
//2019-10-07
date()使用服务器的本地时区。如果这与输入字符串的时区不匹配,则结果将是错误的:
setlocale(LC_ALL, 'nl_NL');
$string = '2019-10-07T01:00:00+07:00';
echo date("Y-m-d H:i:s",strtotime($string));
输出
2019-10-06 20:00:00