这是我的阵列快照
Array(
[created_at] => 2014-02-18T08:29:33.388Z
[modified_at] => 2014-02-18T12:44:46.011Z
)
[created]
数组和[modified_at]
删除字符,我该如何解决此问题?[created_at] =>2014-02-18 8:29:33
[modified_at] =>2014-02-18 12:44:46
如何解决此问题?数据的格式为json
,我试过这段代码:
preg_replace('/[^a-zA-Z0-9]/', "_", $aba);
什么是解决此问题的正确方法。
答案 0 :(得分:1)
无需使用正则表达式,只需重新格式化日期字符串。
示例:
foreach ($arr as $key => $value) {
if (in_array($key, array('created_at', 'modified_at'))) {
$arr[$key] = date('Y-m-d H:i:s', strtotime($value));
}
}
答案 1 :(得分:0)
严格按照你的意愿行事,即字符串操作(恰好代表日期/时间戳的字符串):
$t = Array (
'created_at' => '2014-02-18T08:29:33.388Z',
'modified_at' => '2014-02-18T12:44:46.011Z'
);
$r = array();
foreach ($t as $key => $element) {
$r[$key] = str_replace('T', ' ', str_replace('Z', '', $element));
}
var_dump($r);
这没有将字符串转换为datestamps然后再返回的开销。
答案 2 :(得分:0)
$result = preg_replace('/([0-9\-]+)[^0-9]*?([0-9\:]+).*/', '$1 $2', $array['created_at']);
会给你:
2014-02-18 12:44:46
2014-02-18 08:29:33
答案 3 :(得分:0)
请看这个
$str = "2014-02-18T08:29:33.388Z";
$nstr = preg_replace('/\.([0-9]{3}[a-zA-Z])$/', "", $str);
echo preg_replace('/[a-zA-Z]/', " ", $nstr);
输出:2014-02-18 08:29:33