Pues la verdad yo tampoco me imagino que está mal, no sé si alguien sabe otra forma de hacerlo.
He probado tu código y funciona cuando creas la variable así:
Código PHP:
$prueba = '1 Week, 1 Day, 21 Hours, 39 Minutes, 29 Seconds';
Sin embargo cuando lo hago así, no sustituye nada.
Código PHP:
$prueba = '<time datetime="'.date('c', $expulsionActual['expulsion-expira_en']).'">'.segundos_a_texto_legible($expira).'</time>';
Pero al final lo he solucionado a mi manera, con un poquito de paciencia y lógica. Busqué por el código y encontré una variable que almacenaba el tiempo en segundos, luego encontré por google una función que servía para convertir segundos en texto legible (semanas, dias, horas, minutos, segundos) y he sustituído donde ponía week por semana y ya.
La dejo por aquí:
Código PHP:
/*
* Convertir segundos a texto legible.
*
*/
function conversor_segundos($secs)
{
$units = array(
"semana" => 7*24*3600,
"dia" => 24*3600,
"hora" => 3600,
"minuto" => 60,
"segundo" => 1,
);
if ( $secs == 0 ) return "0 segundos";
$s = "";
foreach ( $units as $name => $divisor ) {
if ( $quot = intval($secs / $divisor) ) {
$s .= "$quot $name";
$s .= (abs($quot) > 1 ? "s" : "") . ", ";
$secs -= $quot * $divisor;
}
}
return substr($s, 0, -2);
}
Para llamarla:
Código PHP:
conversor_segundos(valorquequieras);