note 113675 deleted from function.date by tularis
| From: | tularis@php.net | Date: | Fri, 15 Nov 2013 16:15:51 +0000 |
| Subject: | note 113675 deleted from function.date by tularis | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-197531@lists.php.net to get a copy of this message | ||
Note Submitter: nastysclaw [-AT-] Gmail [-D0T-] com
----
Pour convertir une date US en FR ou inversement
Exemple d'utilisation:
ConversionDate ('2013-11-14', 'FR') = 14/11/2013
ConversionDate ('14/11/2013', 'US') = 2013-11-14
Code:
// Conversion de la date selon la source
function ConversionDate ($date, $source) {
// Si la date comporte bien 10 caractères, alors
if (strlen ($date) == 10) {
// Si la date est séparée par des tiret, alors
if (strpos ($date, '-') !== FALSE) {
// On découpe la date
$explode_date = explode ('-', $date);
}
// Si la date est séparée par des slash, alors
elseif (strpos ($date, '/') !== FALSE) {
// On découpe la date
$explode_date = explode ('/', $date);
}
// Si la date est séparée par des point, alors
elseif (strpos ($date, '.') !== FALSE) {
// On découpe la date
$explode_date = explode ('.', $date);
}
// Si la date est séparée par des virgule, alors
elseif (strpos ($date, ',') !== FALSE) {
// On découpe la date
$explode_date = explode (',', $date);
}
// Si la date est séparée par des point-virgule, alors
elseif (strpos ($date, ';') !== FALSE) {
// On découpe la date
$explode_date = explode (';', $date);
}
// Si la date est séparée par des espace, alors
elseif (strpos ($date, ' ') !== FALSE) {
// On découpe la date
$explode_date = explode (' ', $date);
}
// Si la conversion est impossible, alors
else {
// On retourne la date tel quel
return $date;
}
// Si la découpe s'est bien effecutée, alors
if (!empty ($explode_date[0])) {
// Si la 1er découpe est le jour, alors
if (strlen ($explode_date[0]) == 2) {
// Si le format est FR, alors
if ($source == 'FR') {
// On affiche la date au format JJ/MM/AAAA
return $explode_date[0].'/'.$explode_date[1].'/'.$explode_date[2];
}
// Si le format est US, alors
elseif ($source == 'US') {
// On affiche la date au format AAAA-MM-JJ
return $explode_date[2].'-'.$explode_date[1].'-'.$explode_date[0];
}
// Si la source n'est pas précisée, alors
else {
// On retourne la date tel quel
return $date;
}
}
// Si la 1er découpe est l'année, alors
if (strlen ($explode_date[0]) == 4) {
// Si le format est FR, alors
if ($source == 'FR') {
// On affiche la date au format JJ/MM/AAAA
return $explode_date[2].'/'.$explode_date[1].'/'.$explode_date[0];
}
// Si le format est US, alors
elseif ($source == 'US') {
// On affiche la date au format AAAA-MM-JJ
return $explode_date[0].'-'.$explode_date[1].'-'.$explode_date[2];
}
// Si la source n'est pas précisée, alors
else {
// On retourne la date tel quel
return $date;
}
}
// Si la 1er découpe corresponds à rien, alors
if (strlen ($explode_date[0]) != 2 && strlen ($explode_date[0]) != 4) {
// On retourne la date tel quel
return $date;
}
}
// Si la découpe est impossible, alors
else {
// On retourne la date tel quel
return $date;
}
}
// Si la date ne comporte pas les 10 caractères, alors
else {
// On retourne la date tel quel
return $date;
}
}