【发布时间】:2012-04-04 15:04:08
【问题描述】:
我有一个数组,它从一个我无法更改的表中以 int 类型表示 UNIX 时间。有些行不是完整的 UNIX 时间戳,而是短了几个整数。这是有原因的,但对于我的脚本,我需要字符串将非 10 位行更改为“0”,将 10 位行更改为日期(“Ymd”,?)形式。这是数组 $qucls 的示例:
Array
(
[0] => 1332594303
[1] => 1330960502
[2] => 1331227649
[3] => 1331305503
[4] => 1332594303
[5] => 1331147102
[6] => 1332680702
[7] => 1331301902
[8] => 1331048163
[9] => 1332248704
[10] => 1332421503
[11] => 31536000
[12] => 1331816703
[13] => 604800
[14] => 0
[15] => 31536000
[16] => 1332248703
[17] => 31536000
[18] => 1361922903
)
这是脚本:
$k=0
$l=0
foreach ($qucls as $dt[$k]){
if (strlen($dt[$k]) < 10)
$dt[$k++] = '0';
else {$dt[$k++] = date("Ymd", $dt[$l++]);
}
}
for ($l=0; $l < $k; $l++){
}
这是循环后的结果:
Array
(
[0] => 20120324
[1] => 20120305
[2] => 20120308
[3] => 20120309
[4] => 20120324
[5] => 20120307
[6] => 20120325
[7] => 20120309
[8] => 20120306
[9] => 20120320
[10] => 20120322
[11] => 0
[12] => 19700101
[13] => 0
[14] => 0
[15] => 0
[16] => 19700817
[17] => 0
[18] => 19700101
)
请注意,日期格式的格式正确,直到它到达第一个整数 strlen
有人可以帮我弄清楚这个循环有什么问题吗?在 ELSE 开始后的所有 1970 年日期,我都没有得到正确的结果。我还是新手。
谢谢。
【问题讨论】:
标签: php mysql arrays loops foreach