Probleme de date

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 15:17

Bonjour,

Dans ma base de données mes dates sont au format americains par exemple : 2005/02/21 et j ai deux question :

Je dispose d 'un formulaire de saisie et je voudrais que l'utilisateur puisse sasir la date au format français et qu'elle se convetisse directement au format americains au moment d'être inserer dans ma table.

Et je voudrais que quand j 'affiche une donnée sur un de mes formulaires issu d'un champs date de ma table que cette date apparaisse au format français.

Existerait il une fonction php qui permette de faire cela directement, sans passer par un decoupage de la date à l'aide de fonction ??

Merci à tous.

ViPHP
ViPHP | 4674 Messages

10 juin 2005, 15:36

bonjour :)

quel est alors l'avantage d'enregistrer la date au format US ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
fab
ViPHP | 2657 Messages

10 juin 2005, 15:37

je pense pas qu'il éxiste de fonction php mais tu peux faire sans:
<?php
$date_en = "2005/05/21";
$date_array = explode('/',$date_en);
$date_fr = $date_array[2] . '/' . $date_array[1] . '/'. $date_array[0];
?>
et l'inverse
<?php
$date_fr = "30/06/1988"; // ma date de naissance :p
$date_array = explode('/',$date_fr);
$date_en = $date_array[2] . '/' . $date_array[1] . '/' . $date_array[0];
?>

ViPHP
ViPHP | 4674 Messages

10 juin 2005, 15:44

ou sinon, on peut faire une regex no ?

$date="2005/06/10";  
preg_match ('#(\d{4})/(\d{1,2})/(\d{1,2})#', $date, $out);  
echo $out['3'].'/'.$out['2'].'/'.$out['1']; 
:wink:

j'edit : non teste
Modifié en dernier par Hywan le 10 juin 2005, 15:45, modifié 1 fois.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

10 juin 2005, 15:45

je souhaite pas l ' enregistrer au format us ,ce qu'il y a c'est que le format sur ma base postgres est celui la aaaa/mm/jj et donc je suis obligé de la saisir dans ce format et si je veux l'afficher je suis obligé de la convertir

ViPHP
fab
ViPHP | 2657 Messages

10 juin 2005, 15:48

ou sinon, on peut faire une regex no ?

$date="2005/06/10";  
preg_match ('#(\d{4})/(\d{1,2})/(\d{1,2})#', $date, $out);  
echo $out['3'].'/'.$out['2'].'/'.$out['1']; 
:wink:

j'edit : non teste
c'est bien les regex mais faut que ça soit vraiment indispensable car niveau performances c'est assez lourd. Donc quand on peut utiliser une fonction php pour la même chose vaut mieux le faire :)

Eléphant du PHP | 406 Messages

14 juin 2005, 11:40

ya sa si tu veux c est plus simple
<?
$taDateUs="2005/05/12";
$madate=date('d/m/Y', strtotime($taDateUs));
echo $madate;


?>