connaitre le nom du jour a partir d'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 : connaitre le nom du jour a partir d'une date

Re: connaitre le nom du jour a partir d'une date

par miiidooo19 » 02 oct. 2012, 15:48

c'est déjà fait et résultat 2012-10-02 07:43:40 d'ou je vous répond que le type de la variable $order->invoice_date est Y-m-d H:i:s

Re: connaitre le nom du jour a partir d'une date

par Mazarini » 02 oct. 2012, 14:50

Dans le code de prestashop, tu ajoutes un echo de la variable de prestashop à l'endroit ou tu fais tes modifications pour calculer la date de livraison. Contrairement à toi, je ne suis pas persuadé que le contenu de cette variable soit bien celui que tu crois puisque ta fonction ne marche pas.

Ca me semble un test simple et rapide à faire. Après si tu ne veux pas, ca ne me dérange pas plus que ca.

Re: connaitre le nom du jour a partir d'une date

par miiidooo19 » 02 oct. 2012, 14:22


Pour voir ce qu'il y a dans $dateCmd entre autre. J'ai du mal à comprendre comment tu peux savoir ce qu'il y a dans $dateCmd sans faire un echo de cette variable.

D'un coté ca marche avec :
$dateCmd = "2012-10-02 09:11:14";
$testDateExpedetion = getDateExpedition($dateCmd);

et de l'autre ca ne marche pas avec
$dateCmd = $order->invoice_date;
$testDateExpedetion = getDateExpedition($dateCmd);

La première chose à vérifier, c'est forcément de faire un echo de $dateCmd ou de $order->invoice_date.
:roll:
je pense que tu as mal compris mon problème :s

$order->inviuce_date normale qu'il t'affiche rien parce que tu as pas tous le code et tu sais pas d'ou ça viens :s c'est une variable de CMS prestashop ça valeur c'est une date de type ANNEE-MOIS-JOUR HEURE-MIN-S

donc le deusième code il m'arche trés bien parce que t'as une valeur a associé a $dateCmd alors que dans l'autre cas $order->invoice_date est inconnue pour toi
bref en tt cas merci pour ton aide

Re: connaitre le nom du jour a partir d'une date

par Mazarini » 02 oct. 2012, 13:25

pourquoi ajouté des echo ?
...
Pour voir ce qu'il y a dans $dateCmd entre autre. J'ai du mal à comprendre comment tu peux savoir ce qu'il y a dans $dateCmd sans faire un echo de cette variable.

D'un coté ca marche avec :
$dateCmd = "2012-10-02 09:11:14";
$testDateExpedetion = getDateExpedition($dateCmd);

et de l'autre ca ne marche pas avec
$dateCmd = $order->invoice_date;
$testDateExpedetion = getDateExpedition($dateCmd);

La première chose à vérifier, c'est forcément de faire un echo de $dateCmd ou de $order->invoice_date.

Re: connaitre le nom du jour a partir d'une date

par miiidooo19 » 02 oct. 2012, 11:16

pourquoi ajouté des echo ?

bon j'ai fait une function comme tu m'as conseillé mais tjr ça marche hors de prestashop mais quand je l’intègre a prestashop ça marche pas
function getDateExpedition($dateCommande)
	{
	
		$date = DateTime::createFromFormat('Y-m-d H:i:s', $dateCommande );
		$dateCommande = $date->format('D');
		$j = $date->format('d');
		$m = $date->format('m');
		$a = $date->format('Y');
	
	
		if ($dateCommande == "Mon")
			$je = $j + 4;
		elseif (($dateCommande == "Tue") or ($dateCommande == "Wed") or ($dateCommande == "Thu") or ($dateCommande == "Fri") or ($dateCommande == "Sat") )
			$je = $j + 6;
		elseif ($dateCommande == "Sun")
			$je = $j + 5;
		 
		
		if ($je < 31 ) 
			$dateExpedition = $je.'-'.$m.'-'.$a;
		else
		{
			$je = $je - 30;
			$m = $m + 01;
			if ($m == 13)
			{
				$m = 01;
				$a = $a + 1;
			}
			$dateExpedition = $je.'-'.$m.'-'.$a;
		}
		
		return $dateExpedition;
	}
	
	
	$dateCmd = "2012-10-02 09:11:14";
	$testDateExpedetion = getDateExpedition($dateCmd);
	
	echo 'la date d\expédition pour une commande passé le : '.$dateCmd.' est le : '.$testDateExpedetion;

Re: connaitre le nom du jour a partir d'une date

par Mazarini » 02 oct. 2012, 11:11

As tu ajouter des echo ?

Pour l'ajout de jours, regardes la doc. Il faudra que tu détermine le nombre de jours à ajouter et que utilises la fonction pour faire l'ajout.

Re: connaitre le nom du jour a partir d'une date

par miiidooo19 » 02 oct. 2012, 11:04

ce que je veux faire on peut pas le faire avec la datetime::add()

voici ce que je veux faire:

je prend la date de la commande :
si c'est un lundi donc je r'ajoute 4 et ça me donne la date d’expédition (le vendredi pour tt commande passé le lundi )
si la commande est passé le mardi, mercredi, jeudi, vendredi ou samedi je r'ajoute 6 jours pour avoir la date d'expédition (faut pas tombé sur un samedi ou dimanche pour expédier)

et si la commande et passé un dimanche la je rajoute 5 jours

voila ce que je veux faire donc

Re: connaitre le nom du jour a partir d'une date

par Mazarini » 02 oct. 2012, 10:38

A part ajouter des echo dans ton script, je ne vois pas ce que l'on peux faire pour comprendre ce qui se passe.
Mon soupçon est que ta date est un timestamp et pas un string.

$dateCmd = $order->invoice_date;
echo $dateCmd,'<br>';
$date = DateTime::createFromFormat('Y-m-d H:i:s', $dateCmd );
        $dateCmd = $date->format('D');
        $j = $date->format('d');
        $m = $date->format('m');
        $a = $date->format('Y');
echo $dateCmd,'<br>';
echo $j,'<br>';
echo $m,'<br>';
echo $a,'<br>';

        
        
        if ($dateCmd == "Mon")
                        $je = $j + 4;
                elseif (($dateCmd == "Tue") or ($dateCmd == "Wed") or ($dateCmd == "Thu") or ($dateCmd == "Fri") or ($dateCmd == "Sat") )
                        $je = $j + 6;
                elseif ($dateCmd == "Sun")
                        $je = $j + 5;
                 
                
                if ($je < 31 ) 
                        $dateExpedition = $je.'-'.$m.'-'.$a;
                else
                {
                        $je = $je - 30;
                        $m = $m + 01;
                        if ($m == 13)
                        {
                                $m = 01;
                                $a = $a + 1;
                        }
                        $dateExpedition = $je.'-'.$m.'-'.$a;
                }
Au passage, le plus propre serai de faire une fonction avec la date $order->invoice_date en paramètre et qui retourne la date d'expédition calculée. ou le nombre de jour à ajouter. Il y a une fonction date_add() (ou DateTime::add()) qui pourrait d'ailleurs te rendre service. Parce que ton script ne fonctionne pas fin février à priori.

Re: connaitre le nom du jour a partir d'une date

par miiidooo19 » 02 oct. 2012, 09:47

Que contient $dateCmd ?
$dateCmd = $order->invoice_date; // et $order->invoice_date est une date de type 2012-10-02 09:11:14 par exemple
Quel message d'erreur ?
pas de message d'erreur mais la suite de la page ne s'affiche pas, tous s'arrêt au niveau de la ligne rouge
As tu regarder si'il y avait une erreur lors de la mise en forme de la date ?
pas d'erreur parce que normalement quand je fait un test hors de prestashop celà marche bien (dhailleur tu peux essayer le code suivant il m'arche trés bien)
$dateCmd = "2012-10-02 09:11:14";
	
	$date = DateTime::createFromFormat('Y-m-d H:i:s', $dateCmd );
	$dateCmd = $date->format('D');
	$j = $date->format('d');
	$m = $date->format('m');
	$a = $date->format('Y');
	
	
	if ($dateCmd == "Mon")
			$je = $j + 4;
		elseif (($dateCmd == "Tue") or ($dateCmd == "Wed") or ($dateCmd == "Thu") or ($dateCmd == "Fri") or ($dateCmd == "Sat") )
			$je = $j + 6;
		elseif ($dateCmd == "Sun")
			$je = $j + 5;
		 
		
		if ($je < 31 ) 
			$dateExpedition = $je.'-'.$m.'-'.$a;
		else
		{
			$je = $je - 30;
			$m = $m + 01;
			if ($m == 13)
			{
				$m = 01;
				$a = $a + 1;
			}
			$dateExpedition = $je.'-'.$m.'-'.$a;
		}
		
		echo $dateExpedition;
mais une fois je l'intégre dans prestashop ça marche pas sa s'arrête au niveau de cette ligne :

$date = DateTime::createFromFormat('Y-m-d H:i:s', $dateCmd );

Re: connaitre le nom du jour a partir d'une date

par Mazarini » 02 oct. 2012, 09:26

Que contient $dateCmd ?
Quel message d'erreur ?
As tu regarder si'il y avait une erreur lors de la mise en forme de la date ?

Re: connaitre le nom du jour a partir d'une date

par miiidooo19 » 02 oct. 2012, 08:13

aucune réaction ?

Re: connaitre le nom du jour a partir d'une date

par miiidooo19 » 01 oct. 2012, 14:01

j'uai utilisé la methode que tu m'as donnée est ça marche bien sauf que quand j'ai essayé de l'intégrée a prestashop ça marche plus le code de prestashop arret juste avant la ligne

$date = DateTime::createFromFormat('Y-m-d H:i:s', $dateCmd );

voici le code que j'ai ajouter

$dateCmd = $order->invoice_date;

$date = DateTime::createFromFormat('Y-m-d H:i:s', $dateCmd );
	$dateCmd = $date->format('D');
	$j = $date->format('d');
	$m = $date->format('m');
	$a = $date->format('Y');
	
	
	if ($dateCmd == "Mon")
			$je = $j + 4;
		elseif (($dateCmd == "Tue") or ($dateCmd == "Wed") or ($dateCmd == "Thu") or ($dateCmd == "Fri") or ($dateCmd == "Sat") )
			$je = $j + 6;
		elseif ($dateCmd == "Sun")
			$je = $j + 5;
		 
		
		if ($je < 31 ) 
			$dateExpedition = $je.'-'.$m.'-'.$a;
		else
		{
			$je = $je - 30;
			$m = $m + 01;
			if ($m == 13)
			{
				$m = 01;
				$a = $a + 1;
			}
			$dateExpedition = $je.'-'.$m.'-'.$a;
		}
sachant que $order->invoice_date; vien de fichier en question de prestashop ( et il egale a une date)

pour infos aussi ce fichier est sous forme d'une class donc je sais pas si on peu utilisé la classe datetime a l'interieur d'une autre class ?

Re: connaitre le nom du jour a partir d'une date

par miiidooo19 » 01 oct. 2012, 11:31

:) merci pour le lien :)

Re: connaitre le nom du jour a partir d'une date

par Mazarini » 01 oct. 2012, 11:09

Re: connaitre le nom du jour a partir d'une date

par miiidooo19 » 01 oct. 2012, 10:05

peut être j'ai mal expliqué ce que je veux : je cherche enfait a savoir de quel jour il s'agit pour des date passer genre le 28-09-2012 est un dimanche ...