我想知道是否有人可以帮我解决这个问题。 我正在运行PHP版本5.2.16。
到目前为止,我使用了一个子串。
$Date = substr($Date,0,10);
$Date = mysql_real_escape_string($Date);
我正在从REST Api中抓取这个字符串,所以我无法控制它的格式,我不确定字符串中间的'T'是否会导致问题。
现在这个工作做得很简单但是我想要使用更优雅的东西,比如
$Date = Date::createFromFormat('Y-m-dTh:i:s', $Date)->format('Y-m-d');
但这只会返回错误: 致命错误:在...中找不到“日期”类
我对php很新,但我假设我需要Date类(常识),但我如何在我的脚本中实现这个类?
非常感谢任何帮助或建议。
谢谢:)
答案 0 :(得分:4)
该类名为DateTime
$Date = DateTime::createFromFormat('Y-m-dTh:i:s', $Date)->format('Y-m-d');
但是,因为格式是标准化的(ISO 8601),所以不应该出乎意料地改变,所以将它自己分成日期和时间应该是安全的
list ($date, $time) = explode('T', $string);
答案 1 :(得分:4)
你可以这样做:
<?php
$Date = strtotime("2011-10-31T16:22:00");
$converted = date("Y-m-d", $Date);
echo ($converted);
?>
答案 2 :(得分:0)
该类不是Date
,而是DateTime,createFromFormat()方法需要PHP / 5.3或更高版本。无论如何,constructor都能正确识别您所拥有的格式,因此您只需要:
<?php
$date = new DateTime('2011-10-31T16:22:00');
echo $date->format('Y-m-d');
答案 3 :(得分:0)
您可以使用substr提取,也可以只使用strtotime。我使用过它们,它们都是有用的解决方案。如果您还需要提取时间戳,那么strtotime会更好。