In this website一個PHP函數,我發現一個函數轉換秒的人類可讀的格式,例如:翻譯是轉換秒的人類可讀的字符串
3周,2天,1小時27分,52秒
我想翻譯它的意大利語,所以我剛剛翻譯了數組鍵。作用就是現在這個
function secondsToHumanReadable($secs) {
$units = array(
'settimane' => 604800,
'giorni' => 86400,
'ore' => 3600,
'minuti' => 60,
'secondi' => 1
);
foreach ($units as &$unit) {
$quot = intval($secs/$unit);
$secs -= $quot * $unit;
$unit = $quot;
}
return $units;
}
它工作得很好,但有一個小問題:在英語中所有的複數用一個字母較少的結束,但不幸的是在意大利它是不一樣的,因爲你可以看到下面。
English Italian
- weeks, week - settimane, settimana
- days, day - giorni, giorno
- hours, hour - ore, ora
- minutes, minute - minuti, minuto
- seconds, second - secondi, secondo
我想找到一個解決打印奇異鍵,當值== 1
我在想,我可以在陣列與另一個陣列有奇異鍵,使用array_combine()合併。
$singular_units = array(
'settimana',
'giorno',
'ora',
'minuto',
'secondo'
);
print_r(array_combine($singular_units, $units));
/* print_r:
Array
(
[settimana] => 604800
[giorno] => 86400
[ora] => 3600
[minuto] => 60
[secondo] => 1
)
*/
上面的陣列是我需要的,但我不能夠使用它,因爲我只是不能使用其他foreach
。
$seconds = 12345*60; // just an example
$units = secondsToHumanReadable($seconds);
$time_string = '';
foreach ($units as $u => $v)
if (!empty($v))
$time_string.= $v.' '.$u.', ';
echo substr($time_string, 0, -2);
// 1 settimane, 1 giorni, 13 ore, 45 minuti
// this echo is not correct :(is expected to be like this:
// 1 settimana, 1 giorno, 13 ore, 45 minuti
我該如何實現單數的單詞?
任何幫助是真的讚賞!提前感謝你!
真棒!謝謝! – Simone