我正在调用一个API,从中获取日期/date(1365004652303-0500)/,我不明白这是什么格式。这个日期格式叫什么?我不知道用谷歌搜索这种格式需要什么
有谁能帮我把这个日期写成Y-m-d H:i:s格式吗
我正在调用的API位于.NET服务器上。当我使用PHP的file\u get\u contents和json\u decode调用它时,它为创建日期提供了以下日期格式:/Date(1365004652303-0500)/
首先,你需要了解你的格式
日期(1365004652303-0500)/
那你有
- 时间戳(U)=1365004652
- 毫秒(u)=303
- 与格林威治时间(格林威治标准时间)的差值(O)=-0500
建立格式
$date='/date(1365004652303-0500)/;
preg\u match('/(\d{10})(\d{3})([\+\-]\d{4})/',$date,$matches);
$dt=DateTime::createFromFormat(“U.U.O”,vsprintf(“%2$s.%3$s.%4$s',$matches));
echo$dt->;格式('r');
输出
周三,2013年4月3日15:57:32-0500
^
|你能看到格林尼治时间吗?
接口日期格式分析器
{
/**
*@param$string
*
*@returndatetime
*/
公共函数解析($string);
}
抽象类PregDateParser实现DateFormatParser
{
受保护的$pattern、$format、$mask;
公共函数解析($string){
$string=(string)$string;
$pattern=$this->;pattern;
$format=$this->;格式;
$mask=$this->;mask;
$r=预匹配($pattern,$string,$matches);
如果(!$r){
抛出新的意外值异常(“Preg Regex模式失败”);
}
$buffer=vsprintf($mask,$matches);
$result=DateTime::createFromFormat($format,$buffer);
如果(!$result){
抛出新的UnexpectedValueException(sprintf('Failed To Create from Format“%s”for“%s.”,$Format,$buffer));
}
返回$result;
}
}
类JsonTimestampWithOffsetParser扩展了PregDateParser
{
受保护的$pattern='/^\/Date\(\d{10})(\d{3})([+-]\d{4})\/$';
受保护的$format='U.U.O';
受保护的$mask='%2$s.%3$s.%4$s';
}
$date='/date(1365004652303-0500)/';
$parser=新的JsonTimestampWithOffsetParser;
$dt=$parser->;解析($日期);
echo$dt->;格式('r');