begin process at 2012 05 30 13:27:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

date


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

date

dimanche 18 octobre 2009 à 00:47:14 | date

vistel

bonjour à tous
je sais convertir une date au format UNIX
exemple: $date = strftime("%d/%m/%Y %H:%M", $date);
mais pour le contraire comment faire?
si j'ai une date sous ce format:11/02/2009 10:30

$date= mktime();
ça coince entre les parentheses
merci de votre aide
dimanche 18 octobre 2009 à 00:54:40 | Re : date

neigedhiver

Salut,

Si tu es avec PHP5, tu peux utiliser strptime(), qui est justement le contraire de strftime()
Sinon : REGEX !

--
Neige

N'hésitez pas à lire la doc
dimanche 18 octobre 2009 à 01:19:22 | Re : date

vistel

Merci pour ta réponse mais apparemment
je suis pas en PHP5
Fatal error: Call to undefined function strptime()
Par contre le REGEX
je l'ai lu
j'ai trouvé ça bien pensé
mais je n'ai pas décchiffré grand chose
je n'ai pas encore le niveau pour me débrouiller seul

Si on peut m'aider merci
dimanche 18 octobre 2009 à 01:39:55 | Re : date

neigedhiver

En fait, il y a (presque) plus simple : strtotime(). Mais si ta date est du genre dd/mm/yy, il faut transformer ça en mm/dd/yy pour que strtotime() l'interprète correctement.

Code PHP :
$en_date = preg_replace('`([0-9]{2})/([0-9]{2})/(.*)`', '$2/$1/$3', $date);
if ($date !== $en_date) {
	$time = strtotime($en_date);
}


--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
dimanche 18 octobre 2009 à 15:06:38 | Re : date

kohntark

Membre Club
Salut,


Plus simplement pourquoi pas ça :
Code PHP :
<?php
preg_match_all('`\d{2,4}`', $date, $a);
$t = mktime(0, 0, 0, $a[0][1], $a[0][0], $a[0][2]);
?>


mais je n'ai pas décchiffré grand chose


Si tu as juste lu c'est bien normal
Les regex nécessitent pas mal d'apprentissage et de prise de tête avant de pouvoir en tirer pleinement parti (tout du moins pour moi)


Cordialement,

Kohntark -
NB : c'est une impression ou les balises "code" sont de plus en plus pourries ? Il n'y a même plus de coloration syntaxique ? ... arf, je viens de constater que les tags <?php sont obligatoires pour ça à quoi bon préciser un langage alors ?

dimanche 18 octobre 2009 à 15:10:53 | Re : date

kohntark

Membre Club
Oups, j'ai omis l'heure :
Code PHP :
<?php
$t = mktime($a[0][3], $a[0][4], 0, $a[0][1], $a[0][0], $a[0][2]);
?>




Kohntark -

dimanche 18 octobre 2009 à 15:13:00 | Re : date

neigedhiver

Il faut quand même vérifier que preg_match_all rencontre des résultats...

Sinon, c'est marrant, pour la balise code, je m'étais déjà fait la même remarque... En fait, je l'ai même faite à un admin en utilisant le formulaire de contact. Déjà, depuis mon message, j'ai constaté que l'affichage du code ne supprimait plus les majuscules !

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
dimanche 18 octobre 2009 à 16:39:55 | Re : date

kohntark

Membre Club

Il faut quand même vérifier que preg_match_all rencontre des résultats...


Bien sur. Je ne faisais que proposer une solution utilisant le mktime cité initialement.
Reste à voir si le test est réellement nécessaire (quelle est la provenance de cette date Vistel ??)

Je trouvais cette solution plus simple et je pensais qu'elle était plus rapide en terme d'exécution, hors ce n'est pas le cas.
Pour ma culture personnelle j'ai fait un test rapide :
(sur 500000 itérations)
mon code : 16.00 s
ton code : 15.3 s

Inutile de dire que nous ne sommes même plus dans le domaine du négligeable et que le choix de l'une ou l'autre solution portera sur d'autres critères.
Mais tout de même j'ai été étonné, j'aurais parié que l'emploi de preg_match et mktime était sensiblement plus rapide que ta solution. Je n'ai pas prit le temps de tester quelle était la fonction consommatrice (ou la regex)

j'ai constaté que l'affichage du code ne supprimait plus les majuscules !


Je l'ai constaté également, ... il était temps
Vivement la possibilité d'indenter, d'ouvrir un nouvel onglet via tab+T, une coloration syntaxique plus élaborée, des liens automatiques vers la doc pour les fonctions, un correcteur de code, un troll bot killer, une nana à poil lors d'une réponse validée ... ok je sors

Cordialement,


Kohntark -

dimanche 18 octobre 2009 à 20:52:18 | Re : date

neigedhiver

PTDR

Sinon, pour mon code, s'il est plus rapide, c'est que la regex que j'utilise est plus précise que la tienne, et donc elle demande moins de traitement. Par ailleurs, mais là ce ne sont que des spéculations, j'imagine que tant que la regex a déterminé les motifs qui correspondaient, elle en profite pour faire le remplacement, le tout, avec la même optimisation grâce à la PCRE.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
samedi 9 janvier 2010 à 12:21:50 | Re : date

vistel

Merci à toutes les personnes qui se sont penchés sur mon problême
je suis parvenu grace à votre aide à résoudre celui ci
Encore merci et désolé de n'avoir pas pu vous remercier avant.

Le but final était :

je voulais que si quelqun édite un message sur mon site pouvoir le faire remonter à la date du jour en updatant le champ date à la date du jour
(un up à l'italienne quoi )


Cette discussion est classée dans : date, format


Répondre à ce message

Sujets en rapport avec ce message

format de date et time en c+ [ par tertulia ] comment modifier le format de la date c'est dire remplacer les / par - et de l'heure càd remlacer : par - voilac pour pouvoir creer un fichier avec la Convertir une Date au format Timestamp [ par Touf ] Salut !J'ai un petit pb : j'accède à une Date stockée dans une bdd mysql sous la forme (timestamp) "YmdHis" : 20020608105031J'aimerais l'afficher sous Date us rhaaa! [ par phildarvador ] Salut à tous, J'ai une date dans une table mysql (au format date yyyy-mm-dd) et je ne trouve pas comment faire pour la transformer en dd-mm-yyyy (en f Comparaison de date [ par benett ] Bonjour à tous,Comment peut-on comparer 2 dates et extraire la différences en jours.Ces 2 dates sont encodées via un formulaire au format aaaa/aa/aa.C Visual basic pour application Prob Date userform [ par velo ] Lorque l'utilisateur de ma macro saisie une date en TextBox1 (Feuille Userform) 31/12/2002 ces données sont sous forme de texte Comment les converti changer la date...... [ par rich25200 ] bonjour,dans ma BDD j'insere la date avec la fonction NOW(), il m'insere la date avec ce format "2004-04-28 11:21:03"..je voudrais l'afficher dans une PHP et MySQL : format de date [ par vir76 ] Salut tout le monde,Voilà, dans MySQL, j'ai converti mon format DATE à l'aide de la fonction SELECT DATE_FORMAT(nom de mon champ, mon format)Le serveu PHP et MySQL : format de date [ par vir76 ] Bonjour,Je voudrais convertir le format de date de mySQL (aaaa-mm-jj) en format français (jj-mm-aa). J'ai essayé plusieurs fonctions présentes sur ce Problème d'affichage de date dans un Ajout [ par vir76 ] Bonjour,Dans ma base de données MySQL, j'ai un champ 'COMMANDE_DATE' avec pour format TIMESTAMP.Pour la visualisation, grâce à un SELECT DATE_FORMAT, Format de la date [ par john1983 ] Comment faire pour que la date soit 27-07 et non 2004-07-27 par exemple!Dans ma base de donné sur wanadoo, j'ai tout essayer et je n'y arrive pas!Merc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,357 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales