我从db中提取并保存日期和小时字符串,在数组中:
$array_likes_Days=$wpdb->get_results("SELECT time , totalLikesDay FROM pstableliker WHERE likeUrl='".$url_selec."' AND totalLikesDay !=0 ;");
$arrayDateHours;
$cont1=0;
$cont2=0;
foreach ($array_likes_Days as $key => $row) {
$arrayDateHours[$cont1]=substr($row->time, 0, -9);
var_dump(substr($row->time, 0, -9).'__'.$arrayDateHours[$cont1]);
$arrayDateHours[$cont1][$cont2]=date('H:i', strtotime($row->time));
var_dump(substr($row->time, 0, -9).'__'.$arrayDateHours[$cont1]);
$cont1++;
$cont2++;
}
在第一个var_dump中输出:2015-07-21__2015-07-21
一切顺利。
但在此行中保存一小时后:$arrayDateHours[$cont1][$cont2]=date('H:i', strtotime($row->time));
第二个var_dump输出:2015-07-21__0015-07-21
显示数组的值更改为:2015-07-21->0015-07-21
,为什么在保存时会发生这种情况多阵列?
我想像这样在数组中保存日期和小时:
2015-07-21-->01:24
-->04:12
-->12:40
答案 0 :(得分:2)
尝试替换此行
$arrayDateHours[$cont1][$cont2]=date('H:i', strtotime($row->time));
与
$arrayDateHours[$cont1][]=date('H:i', strtotime($row->time));
它将数据保存为
$arrayDateHours= array(1) { ["2015-07-21"]=> array(2) {
[0]=>
string(1) "01:24"
[1]=>
string(1) "04:12" } }
答案 1 :(得分:1)
尝试
$data = ['2015-08-19 05:11:44', '2015-08-19 05:15:11', '2015-08-19 05:17:38'];
//echo date('Y-m-d H:i:s', time());
$arrayDateHours = array();
$i = 0;
foreach($data as $time)
{
$time = explode(' ', $time);
$arrayDateHours[$time[0]][$i] = $time[1];
$i++;
}
var_dump($arrayDateHours);
输出
array (size=1)
'2015-08-19' =>
array (size=3)
0 => string '05:11:44' (length=8)
1 => string '05:15:11' (length=8)
2 => string '05:17:38' (length=8)