2009-03-12 8 views
1

J'ai une chaîne comme indiqué ci-dessous:date en php

$ts = "3/11/09 11:18:59 AM"; which I have got using date() function 

Maintenant je dois convertir en un format lisible comme ci-dessous

11-Mar-2009 

J'ai ave tout essayé par date (Est-ce que quelqu'un peut m'aider s'il vous plaît avec ceci?

Répondre

3

Vous devez le convertir en quelque chose que vous pouvez utiliser pour le formatage ultérieur. strtotime() est un bon début, ce qui donne un timestamp unix. Vous pouvez le formater en utilisant strftime() alors.

strftime("%d-%b-%G", strtotime($ts)); 
+0

Merci une tonne .. Il a travaillé :) – gnanesh

+0

strftime ne fonctionne pas sous Windows – vava

+0

Certes, il ne fonctionne pas sur tous les * * l'installation - il y a des fenêtres builds avec cette fonction, cependant. Vous pouvez utiliser date() à la place, si vous le souhaitez. – soulmerge

1

Si vous obtenez d'abord la chaîne à partir de la fonction date(), passe ensuite sur le formatage des arguments à la date-fonction à la place:

Date ('YM-d')

au lieu de convertir la chaîne une fois de plus.

EDIT: Si vous avez besoin de garder une trace de l'horodatage réel, puis l'enregistrer comme un horodatage:

 
// Store the timestamp in a variable. This is just an integer, unix timestamp (seconds since epoch) 
$time = time(); 

// output ISO8601 (maybe insert to database? whatever) 
echo date('Y-m-d H:i', $time); 

// output your readable format 
echo date('j-M-Y', $time); 

En utilisant strtotime() est l'analyse syntaxique convinient mais unessecary et le stockage d'un timerepresentation est une idée stupide.

+0

Ce n'est pas une option car j'ai aussi besoin de temps. Seulement pendant que j'affiche j'ai besoin dans le format mentionné – gnanesh

+0

Vous devriez garder la date dans un format facilement utilisé pour l'ordinateur lui-même, pas comme une chaîne. le retour de la méthode time() est un bon début, puis passez cette variable comme second argument à date() pour le formatage. Je vais mettre à jour ma réponse. – jishi

0

Vous pouvez utiliser la fonction date() pour générer directement le format requis, comme ceci:

date("j-M-Y"); 

Voir www.php.net/date pour tous les formats possibles de la sortie de la fonction date().

+0

Ce n'est pas une option car j'ai aussi besoin de temps. Seulement pendant que j'affiche j'ai besoin dans le format mentionné – gnanesh

1

En fait, j'ai essayé de le faire et cela a fonctionné.

echo date("d-M-Y", strtotime($ts)); 
+0

Je recommanderais ceci au-dessus de la réponse actuelle car elle fonctionne également dans Windows. –