preg ile saat biçimini değiştirme php değiştirin

2 Cevap php

biz gebelik ile değiştirin bunu eğer im sadece merak

zamanı var gibi gibi eğer

1h 38 min

değiştirebilirsiniz

98 mins

2h 20 min

değiştirebilirsiniz

140 mins

ya da sadece bana bu başka bir rasgele fonksiyon basit bir yol önermek

teşekkürler

2 Cevap

Bu basit bir işlev hile yapmak gerekir. Ama, dize biçimi üzerinde hiçbir doğrulama yok.

function reformat_time_string($timestr) {
    $vals = sscanf($timestr, "%dh %dm");
    $total_min = ($vals[0] * 60) + $vals[1];
    return "$total_min mins";
}

$timestr = "2h 15m";
echo reformat_time_string($timestr); /* echoes '135 mins' */
$pattern = '!(\d+)\s*h\s*(\d+)\s*min!';
foreach( array('1h 38 min', '2h 20 min') as $input) {
  echo preg_replace_callback($pattern, function($x) { return ($x[1]*60+$x[2]).' minutes'; }, $input), "\n";
}

baskılar

98 minutes
140 minutes

önce 5.3 php sürümleri için kullanmak olurdu

function foo($x) {
  return ($x[1]*60+$x[2]).' minutes';
}
$pattern = '!(\d+)\s*h\s*(\d+)\s*min!';
foreach( array('1h 38 min', '2h 20 min') as $input) {
  echo preg_replace_callback($pattern, 'foo', $input), "\n";
}