Problème a séparé une date et l'heure

Eléphanteau du PHP | 13 Messages

07 juil. 2014, 13:47

Bonjour à toutes et tous,

je me permets de publier cela pour vous demander comment peut-on séparer une date type Timestamp en date et heure et la mettre dans une requete?

Voici mon code pour afficher juste la date d'aujourd'hui:

function MoisFrancais($pMois)
{
$aMois = array(
1 => 'Janvier',
2 => 'Fevrier',
3 => 'Mars',
4 => 'Avril',
5 => 'Mai',
6 => 'Juin',
7 => 'Juillet',
8 => 'Août',
9 => 'Septembre',
10 => 'Octobre',
11 => 'Novembre',
12 => 'Decembre'
);
if($pMois < count($aMois))
// le return $aMois[$pMois] affiche le mois tel qu'elle est mais si on ajoute +1 pour le mois change.//
return $aMois[$pMois] ;
}


function JourFrancais($pJour)
{
$aJour = array(
1 => 'Lundi',
2 => 'Mardi',
3 => 'Mercredi',
4 => 'Jeudi',
5 => 'Vendredi',
6 => 'Samedi',
7 => 'Dimanche'
);
if($pJour<count($aJour))
// le return $aJour[$pJour] affiche la date du jour tel qu'elle est mais si on ajoute +1 le jour change.//
return $aJour[$pJour];

}
date_default_timezone_set('Europe/Paris');

$date1=getdate(time("date1"));
'<br/>'. print (JourFrancais($date1['wday'])." ".$date1['mday']." ".MoisFrancais($date1['mon'])." ".$date1['year']).'<br/>';

Merci de vos réponse,

Yoyocent

Mammouth du PHP | 1339 Messages

07 juil. 2014, 13:58

Hello,

Je comprend pas ce que tu veux faire ...
je me permets de publier cela pour vous demander comment peut-on séparer une date type Timestamp en date et heure et la mettre dans une requete?
Si tu fais date('d-m-Y H:i:s', time()); ... Est-ce que ca te sépare une date timestamp en date normal ? :)
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 13 Messages

07 juil. 2014, 14:02

Bonjour Elie,
Merci de ta réponse, je vais essayer ça et je te dis :).
Ce que je voudrai faire en fait c'est dans ma Base de données, il y a le nom date et cette date est en type timestamp donc je souhaiterai séparer la date et l'heure pour après faire ma requête

Mammouth du PHP | 2278 Messages

07 juil. 2014, 14:22

strtotime transforme une date formulée sous une de ces formes : http://us2.php.net/manual/fr/datetime.formats.php en timestamp

http://us2.php.net/manual/fr/function.strtotime.php
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 13 Messages

07 juil. 2014, 14:24

Merci :) de ta réponse je vais tester cela :).

Eléphanteau du PHP | 13 Messages

07 juil. 2014, 16:31

Une question me perturbe et la question est la suivante:

Est ce qu'on peut changer un type TIMESTAMP en date, en heure et en seconde c'est à dire du genre Lundi 7 Juillet 2014 16 :13:39?

Mammouth du PHP | 1339 Messages

07 juil. 2014, 16:33

Ma réponse plus haut te plaisait pas ?
Tu m'avais promis de tester ...
date('d-m-Y H:i:s', time())
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 13 Messages

07 juil. 2014, 16:38

Ma réponse plus haut te plaisait pas ?
Tu m'avais promis de tester ...
date('d-m-Y H:i:s', time())

Je l'ai testé mais elle ne me plaie pas trop pour cause j'ai fait les fonctions mais maintenant je n'arrive pas à la mettre dans ma requête :( désolé de tous vous importuné je suis débutant :/

Mammouth du PHP | 1339 Messages

07 juil. 2014, 17:21

Converti la date directement depuis ta base MySQL sinon : http://dev.mysql.com/doc/refman/5.5/en/ ... m-unixtime
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 13 Messages

08 juil. 2014, 14:05

Converti la date directement depuis ta base MySQL sinon : http://dev.mysql.com/doc/refman/5.5/en/ ... m-unixtime
Merci elie mais je n'ai pas le droit de changer depuis ma base de données car c'est un prestataire qu'il l'a crée donc je suis coincé dans ce problème .. Mais bon je vais chercher encore sans désespérer :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 juil. 2014, 14:19

salut,

en fait le plus simple c'est que tu explique ce que tu veux en faire.

parce qu'un champs temporel de base de données c'est souvent stockée sous forme de timestamps.

Si tu veux l'afficher d'une façon compréhensible pour le commun des mortels (genre Lundi 7 Juillet 2014 16 :13:39) mysql propose des fonctions pour cela et te permet d'éviter de faire le calcul en php (c'est fait à la source).
Ceci est fait dans ta requête SQL select, tu n'as pas besoin de modifier le type de champs dans la bases.

voici la liste des fonctions de date / heure de mysql http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html (dont certaine ont déjà étaient évoquées ici).

si le champs est de type date tu peux utiliser date_format
Dans le même esprit, si le champs est un timestamp tu peux utiliser la fonction FROM_UNIXTIME (que t'indique Elie) qui va te permettre d'avoir la donnée formatée comme tu le souhaite.

si le but c'est d'effectuer un calcul avec les dates, toutes les fonctions le permettant sont listées sur le 1er liens.

Il est important que l'on sache exactement ce que tu veux faire, car on ne peux pas deviner, un coup tu parle d'afficher la chose un coup de l'utiliser pour une requête, au final on ne sait pas est nos réponse ne peuvent qu'être vague (mais pertinente pour ce que l'on comprend de ton problème).
Pense que l'on a juste ta question, on ne sais pas ce que fait ton appli, on ne sais pas a quoi ressemble le code php ou la sql, bref on ne sais rien de ton projet et du coup ce n'est pas facile d'être pile poil dans le bon cadre (même si a a priori on ne semble pas loin ;) )

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

08 juil. 2014, 15:11

Salut Moogli,

Je te remercie de ta réponse très clair, désolé d'être imprécis. Voilà ce que je dois faire:
mon projet est le suivant depuis un formulaire l'utilisateur entre un numéro de poste pour savoir l'heure, la date lié aux appels mais cependant la date est en type timestamp et dans les cas suivants:

Je dois séparer les dates et les heures qui sont en timestamp et qui sont dans la Base de données.
Je dois pouvoir les afficher comme je l'ai dit du style : Mardi 8 juillet à 14h00:02s..
Et je dois aussi faire des tranches du style la semaine: lundi au vendredi et les cas spéciales sont les jeudi soir et les samedi matin.

donc j'espère que j'étais précis et désolé si ce n'est pas encore très précis car l'utilisateur me dit petit à petit ce qu'il veut donc je suis un peu coincé aussi. Mais je peux voir en dire plus après ce point :) MErci à toi.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

08 juil. 2014, 16:01

Je dois séparer les dates et les heures qui sont en timestamp et qui sont dans la Base de données.
pourquoi ?
Je dois pouvoir les afficher comme je l'ai dit du style : Mardi 8 juillet à 14h00:02s..
donc ça c'est la fonction FROM_UNIXTIME de mysql qui va te le faire ;)
Et je dois aussi faire des tranches du style la semaine: lundi au vendredi et les cas spéciales sont les jeudi soir et les samedi matin.
la du coup c'est flou des tranches de quoi ?
afficher une semaine dans une table (avec 5 à 7 colonnes) je suis certain que tu sais faire.
mais est ce que c'est afficher dans cette table les infos qui sont dans la base de données que tu veux faire ?
quitte a grouper sur une journée, sur des tranche horaire (AM / PM) etc ?
dans ce type de cas, groupement en sql et gestion / traitement des données ensuite pour l'affichage.


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 13 Messages

08 juil. 2014, 16:21

Je dois séparer les dates et les heures qui sont en timestamp et qui sont dans la Base de données.
pourquoi ?
c'est pour avoir la date comme je l'ai écrite c'est à dire le Mardi ... etc..
Je dois pouvoir les afficher comme je l'ai dit du style : Mardi 8 juillet à 14h00:02s..
donc ça c'est la fonction FROM_UNIXTIME de mysql qui va te le faire ;)
Et je dois aussi faire des tranches du style la semaine: lundi au vendredi et les cas spéciales sont les jeudi soir et les samedi matin.
la du coup c'est flou des tranches de quoi ? Je voulais dire par là, une séparation entre lundi au vendredi qui est la semaine et de l'autre juste occasionnelle le jeudi soir et samedi matin
afficher une semaine dans une table (avec 5 à 7 colonnes) je suis certain que tu sais faire.
mais est ce que c'est afficher dans cette table les infos qui sont dans la base de données que tu veux faire ? oui
quitte a grouper sur une journée, sur des tranche horaire (AM / PM) etc ? je dois faire une tranche horaire du sens: la pause du midi et apres reprendre à tel heure etc mais je ne suis pas encore à ce point là.
dans ce type de cas, groupement en sql et gestion / traitement des données ensuite pour l'affichage.


@+
en résumé, le résultat donne ça au jour d'aujourd'hui:

numéro de poste:3999
la date appel/ heure dappel:2014-04-07 15:19:58

Je souhaiterai le transformé en Vendredi 4 avril 2014 et l'heure 15h19mn58s du style comme ça mais je te remercie de ta réponse Moogli :).
tu m'as beaucoup aidé et éclairé, j'étais juste bloqué pour mettre la date en Jeudi 05 mai 2014 avec l'heure donc après je vais me débrouiller :) merci

Mammouth du PHP | 1339 Messages

08 juil. 2014, 18:26

	// Ecrire la date en francais
	function dateFrancais($time, $heure=NULL) {
	
	$jourFrancais = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche');
	$moisFrancais = array(1 => 'Janvier', 2 => 'Février', 3 => 'Mars', 4 => 'Avril', 5 => 'Mai', 6 => 'Juin', 7 => 'Juillet', 8 => 'Août', 9 => 'Septembre', 10 => 'Octobre', 11 => 'Novembre', 12 => 'Décembre');

	
		$return = $jourFrancais[date('w', $time)]." ".date('d', $time)." ".$moisFrancais[date('n', $time)]." ".date('Y', $time);
		$return .= !empty($heure) ? ' à '.date('H\hi', $time) : NULL;
	
	return $return;
	
	}

echo dateFrancais($time, 1);
Cadeau ... A ne donner a personne d'autre !
Bon sinon tu me fais un message privé et on se fait un TeamViewer