2015-10-27 1 views
1

J'ai une fonction pour traiter le "s" à la fin des pluriels et une autre pour convertir un total de secondes en quelque chose de plus intuitif humain. J'essaie d'utiliser la fonction pluriels à l'intérieur du secondstotime pour qu'il dise "1 jour" et "10 jours" par exemple. Notez le "s" à la fin.Utiliser une fonction php à l'intérieur d'une autre fonction php

function plurals($number) 
{ 
    if ($number == 1) 
    { 
     return ''; 
    } 
    else 
    { 
     return 's'; 
    } 
} 

function secondstotime($seconds) 
{ 
    $dtF = new DateTime("@0"); 
    $dtT = new DateTime("@$seconds"); 
    if ($seconds < 60) 
    { 
     return $dtF->diff($dtT)->format('%s seconds'); 
    } 
    else if ($seconds < 3600) 
    { 
     return $dtF->diff($dtT)->format('%i minutes'); 
    } 
    else if ($seconds < 86400) 
    { 
     return $dtF->diff($dtT)->format('%h hours, %i minutes'); 
    } 
    else if ($seconds < 31536000) 
    { 
     return $dtF->diff($dtT)->format('%a days'); 
    } 
    else 
    { 
     return $dtF->diff($dtT)->format('%y years, %a days'); 
    } 
} 

Comment faire? Je l'ai essayé d'utiliser le code comme cela, mais il ne fonctionne pas:

return $dtF->diff($dtT)->format('%a day'.plurals('%a')); 
+2

Vous devez envoyé votre format à la fonction, maintenant que vous envoyez une chaîne .. ** '% a' ** – Naruto

Répondre

3

'%a' est pas un nombre, essayez cette

return $dtF->diff($dtT)->format('%a day'.plurals($dtF->diff($dtT)->format('%a'))); 
+2

Ah cela fonctionne parfaitement merci !! Je vais l'accepter quand ça me le permettra :) –