从未知格式/日期(157664880000)以php格式设置日期/
我正在调用API,并从中获取日期为从未知格式/日期(157664880000)以php格式设置日期/,php,Php,我正在调用API,并从中获取日期为/Date(157664800000)/此格式 我不知道格式是什么 我想把它转换成php中的Y-m-dh:I:s,有人知道我怎么做吗?这是带有毫秒的时间戳。你可以把它改成你想要的。首先,您必须在几秒钟内删除 $time = 1576648800000; $time = $time / 1000; 然后,您可以使用date()函数对其进行更改: date('Y-m-d H:i:s',$time) 要从字符串获取整数,请执行以下操作: $dateString =
/Date(157664800000)/
此格式
我不知道格式是什么
我想把它转换成php中的
Y-m-dh:I:s
,有人知道我怎么做吗?这是带有毫秒的时间戳。你可以把它改成你想要的。首先,您必须在几秒钟内删除
$time = 1576648800000;
$time = $time / 1000;
然后,您可以使用date()
函数对其进行更改:
date('Y-m-d H:i:s',$time)
要从字符串获取整数,请执行以下操作:
$dateString = '/Date(1576648800000)/';
$time = preg_replace('/[^0-9]/', '', $dateString );
这是带有毫秒的时间戳。你可以把它改成你想要的。首先,您必须在几秒钟内删除
$time = 1576648800000;
$time = $time / 1000;
然后,您可以使用date()
函数对其进行更改:
date('Y-m-d H:i:s',$time)
要从字符串获取整数,请执行以下操作:
$dateString = '/Date(1576648800000)/';
$time = preg_replace('/[^0-9]/', '', $dateString );
要从
/Date(157664880000)/
获取时间,请执行以下操作:
$string = '/Date(1576648800000)/';
$string = intval(substr($string, 6, -2)) / 1000;
date('Y-m-d H:i:s',$string);
要从
/Date(157664880000)/
获取时间,请执行以下操作:
$string = '/Date(1576648800000)/';
$string = intval(substr($string, 6, -2)) / 1000;
date('Y-m-d H:i:s',$string);
使用Regex从字符串中提取时间戳
$re = '/\((\d+)\)/m';
$str = '/Date(1576648800000)/';
preg_match($re, $str, $matches);
$d = DateTime::createFromFormat('U', $matches[1] / 1000);
echo $d->format('Y-m-d H:i:s');
其结果是:
2019-12-18 06:00:00
使用Regex从字符串中提取时间戳
$re = '/\((\d+)\)/m';
$str = '/Date(1576648800000)/';
preg_match($re, $str, $matches);
$d = DateTime::createFromFormat('U', $matches[1] / 1000);
echo $d->format('Y-m-d H:i:s');
其结果是:
2019-12-18 06:00:00
您可以使用正则表达式过滤该值。由于格式与
/Date(某些数字)/
匹配,因此只需匹配括号内的数字即可
片段:
<?php
$str = '/Date(1576648800000)/';
if(preg_match('/\((\d+)\)/',$str,$matches) === 1){
$date = date("Y-m-d H:i:s",intval($matches[1]) / 1000);
echo $date;
}else{
throw new Exception('Unexpected format received from the API');
}
您可以使用正则表达式过滤该值。由于格式与/Date(某些数字)/
匹配,因此只需匹配括号内的数字即可
片段:
<?php
$str = '/Date(1576648800000)/';
if(preg_match('/\((\d+)\)/',$str,$matches) === 1){
$date = date("Y-m-d H:i:s",intval($matches[1]) / 1000);
echo $date;
}else{
throw new Exception('Unexpected format received from the API');
}
数字是以毫秒为单位的时间戳,等于2019年12月18日星期三06:00:00(GMT)。如何解析字符串/Date(157664800000)/
并将其转换为Y-m-d H:I:s
此格式?如果我得到157664880000
timestamp,我可以解析它。谢谢你的指导。我被困在这一点上了。它可能来自默认的C#MVC脚本序列化程序生成的JSON(也可能是其他的?)。这是一个Javascript技巧,在这里,对代码求值将实例化日期。它非常有用,因为数字是以毫秒为单位的时间戳,等于2019年12月18日星期三06:00:00(GMT)。如何解析字符串/Date(157648800000)/
并将其转换为Y-m-d H:I:s
此格式?如果我得到157664880000
timestamp,我可以解析它。谢谢你的指导。我被困在这一点上了。它可能来自默认的C#MVC脚本序列化程序生成的JSON(也可能是其他的?)。这是一个Javascript技巧,在这里,对代码求值将实例化日期。谢谢,这很没用,@ttrasn。谢谢你的回答。我知道如何解析时间戳。但是我得到了这个/Date(157664880000)/
格式。首先,我需要将这个字符串解析为时间戳,然后才能将其转换。@DilipHirapara一些API返回带有时间戳的字符串。您必须使用substr
函数解析它。谢谢,@ttrasn。谢谢你的回答。我知道如何解析时间戳。但是我得到了这个/Date(157664880000)/
格式。首先,我需要将这个字符串解析为时间戳,然后才能将其转换。@DilipHirapara一些API返回带有时间戳的字符串。您必须使用substr
函数对其进行解析。您能否解释更多的preg\u match\u all($re,$str,$matches,preg\u SET\u ORDER,0)代码>这行。这个解决方案对我来说非常有效。但是假设我没有得到相同类型的格式,它会工作吗?正则表达式(RegEx)匹配括号之间的数字(d+
模式),并提取到第一个匹配中$matches[1]
。我刚改为preg\u match
以获得更简单的代码。投票是因为它使用了DateTime类。你能解释一下更多的preg\u match\u all($re,$str,$matches,preg\u SET\u ORDER,0)代码>这行。这个解决方案对我来说非常有效。但是假设我没有得到相同类型的格式,它会工作吗?正则表达式(RegEx)匹配括号之间的数字(d+
模式),并提取到第一个匹配中$matches[1]
。我刚刚更改为preg\u match
以获得更简单的代码。投票是因为它使用DateTime类。