formater une date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : formater une date

par Xenon_54 » 11 mars 2005, 00:32

J'ai la meilleure solution:
Si tu ne comptes pas utiliser les heures et minutes contenues dans le champ, alors vaut mieux changer le type du champ pour "DATE"

:D

par Damien » 11 mars 2005, 00:31

preg_match et strtotime+date doivent se valoir niveau performance, mais par contre le substr doit être beaucoup plus rapide. C'est sûr qu'on ne verra pas la différence sur une instruction (ni même sur 1000), mais un gain est toujours un gain.

par Xenon_54 » 10 mars 2005, 23:30

Fonction déjà existante réalisant sensiblement les mêmes opérations:
<?php
$time = strtotime ($variable);
echo date('Y-m-d', $time);
?>
:P

par flitox » 10 mars 2005, 23:02

Et ça?
<?
$date = '2005-03-01 17:00:09';
preg_match("!(\d{4}-\d{2}-\d{2})!", $date, $recupnewdate, PREG_OFFSET_CAPTURE);
echo $recupnewdate[0][0];
//Affiche 2005-03-01
?>

par Damien » 10 mars 2005, 22:27

Xenon_54 : La méthode optimale dépend de tes besoins. Mais si tu veux pouvoir utiliser ton code sur différents SGBD, ou changer de SGBD sans avoir à faire trop de modifs, ou alors tout simplement soliciter le moins longtemps possible ton SGBD, l'utilisation de PHP pour traiter tes variables est une solution.

par dark_vidor » 10 mars 2005, 22:11

impec le truc de la chaine
je prefer ça a l'autre parce que y'a deja des operations de focntion date dans l'extraction donc trop complique ^^

par Xenon_54 » 10 mars 2005, 22:07

Damien

Pourquoi extraire le champ de la base de données pour ensuite la retraiter avec PHP alors que MySQL propose déjà des fonctions de manipulation de date?

Selon moi, la question ne se pose pas:
Lorsque l'on peut éviter l'utilisation des fonctions PHP lorsqu'il est question de bases de données, autant utiliser les fonctions disponibles dans le SGBD. Cela évite une manipulation inutile et de plus, la fonction SQL a été optimisée pour ce genre de manipulation.

Encore une fois, ton second exemple aurait pu également être fait en SQL

Code : Tout sélectionner

SELECT LEFT(fieldname, 10) FROM tablename
:)

par Damien » 10 mars 2005, 21:55

Ou alors
<?php

$date = '2005-03-01 17:00:09';

echo substr($date, 0, 10);
// on prend les 10 caracteres a partir du caractere 0 de la variable $date

?>

par Xenon_54 » 10 mars 2005, 21:52

Bonjour,
je pense qu'il faudrait juste que tu fasses date("Y-m-d"); et ça suffit.
Ceci retourne la date courante au format Y-m-d. Or, la question demande à ce que l'on retourne la date d'un temps donné à partir d'un champ MySQL. Il ne faut donc pas confondre PHP et MySQL. ;)


Il existe plusieurs façons de récupérer que la date à partir d'une requête SQL

Fonction DATE() disponible qu'à partir de MySQL 4.1.1

Code : Tout sélectionner

SELECT DATE(fieldname) FROM tablename
Fonction DATE_FORMAT()

Code : Tout sélectionner

SELECT DATE_FORMAT(fieldname, '%Y-%m-%d') FROM tablename
fieldname: Champ contenant la date
tablename: Nom de la table

;)

par milooser » 10 mars 2005, 21:43

Bonjour,
je pense qu'il faudrait juste que tu fasses date("Y-m-d"); et ça suffit.

formater une date

par dark_vidor » 10 mars 2005, 21:41

je recupere une date sous la forme (stokée en base) : 2005-03-01 17:00:09

je veut juste 2005-03-01

comment formater cette date ?

j'ai essayer ça : date("Y-m-d","2005-03-01 17:00:09");
mé ça fonctionne pas ^^