osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> tep_date
krokus
posté 18 Apr 2013, 19:44
Message #1


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 337
Inscrit : 23-February 07
Membre no 15518



Petite question sur le tep_date, j'essaye de n'afficher que le mois et l'année donc avec le tep_date_short on a jj/mm/aaaa, dans le fichier function/general.php on a les 2 fonctions tep_date_long avec DATE_FORMAT_LONG et tep_date_short avec DATE_FORMAT mais franchement je ne comprend pas comment cela fonctionne ?


--------------------
Ms2.3+Category Description+Ckeditor+Colissimo+EasyPopulate+Header tags seo+Otf autothumb+PIM osSlideshow+Theme switcher+Ultimate Seo Urls+Icone stock+crawlprotect+Who's Online Enhancement+Master password+lien suivi colis
Go to the top of the page
 
chti_poupon
posté 18 Apr 2013, 20:41
Message #2


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2744
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Bonjour
DATE_FORMAT est défini dans french.php
Une compréhension du code passe par la lecture de cette page ci où se trouvent les paramètres de la fonction date() : Y n'est pas l'année courante, mais un paramètre ...
Si çà peut aider... mais ce n'est pas bien simple et en plus "çà ne cause pas la France" - sauf serveur paramétré pour cela.
CHti poupon
Go to the top of the page
 
krokus
posté 19 Apr 2013, 07:47
Message #3


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 337
Inscrit : 23-February 07
Membre no 15518



ok bon voila ce que j'ai fait
dans general.php
Code
  function tep_date_xshort($raw_date) {
    if ( ($raw_date == '0000-00-00 00:00:00') || empty($raw_date) ) return false;

    $year = substr($raw_date, 0, 4);
    $month = (int)substr($raw_date, 5, 2);
    $day = (int)substr($raw_date, 8, 2);
    $hour = (int)substr($raw_date, 11, 2);
    $minute = (int)substr($raw_date, 14, 2);
    $second = (int)substr($raw_date, 17, 2);
    

    return strftime(DATE_FORMAT_XSHORT, mktime($hour,$minute,$second,$month,$day,$year));
  }


dans french.php
Code
define('DATE_FORMAT_XSHORT', '%B %Y');  // this is used for strftime()


et dans product_info.php
Code
<?php echo sprintf(TEXT_DATE_AVAILABLE, tep_date_xshort($product_info['products_date_available'])); ?>


ce qui m'affiche pour la date de disponibilité du produit quelque chose comme "Disponibilité prevue pour décembre 2013."
un peu de mal à comprendre la difference entre strftime () et date () mais bon ça fonctionne biggrin.gif
merci chti_poupon


--------------------
Ms2.3+Category Description+Ckeditor+Colissimo+EasyPopulate+Header tags seo+Otf autothumb+PIM osSlideshow+Theme switcher+Ultimate Seo Urls+Icone stock+crawlprotect+Who's Online Enhancement+Master password+lien suivi colis
Go to the top of the page
 
Bonbec
posté 19 Apr 2013, 08:09
Message #4


Ceinture marron OSC
Icône de groupe

Groupe : Modérateurs
Messages : 1323
Inscrit : 30-May 06
Lieu : Vichy (03)
Membre no 10583



Bonjour,
Très intéressant, je vais tester cela, merci ! smile.gif

strftime, tu peux le décomposer en str f time.
- str = string = chaine
- f = formated = formatée
- time = temps
Cela permet de mettre du temps dans un chaine formatée en une seule fois à a place de plusieurs lignes de code.
C'est un peu le même principe qu'avec print et sprintf.

Ce message a été modifié par Bonbec - 19 Apr 2013, 08:10.


--------------------
Config 1 en live : Osc 2.2 très fortement modifié ... UTF-8 et Php 5.4.
Contribs installées : down_for_maintenance_v 2.3 | Estimated Shipping v1.5 | imprint_1_3_5 | low_stock_report_v2.04 | visible_countries_1.2b | Products Tabs | shoppingCart_cleanup_v1.01.0 | + trop de bidouilles persos pas très OsCommerce (erreurs de jeunesse)
Config 2 en local avec UwAmp : Osc 2.3.4 BS
Go to the top of the page
 
krokus
posté 19 Apr 2013, 12:47
Message #5


Ceinture orange+ OSC
Icône de groupe

Groupe : Membres
Messages : 337
Inscrit : 23-February 07
Membre no 15518



j'ai cru comprendre en cherchant sur le net qu'il etait plus facile (suivant les serveurs huh.gif ) d'utiliser strftime () pour avoir les mois en français


--------------------
Ms2.3+Category Description+Ckeditor+Colissimo+EasyPopulate+Header tags seo+Otf autothumb+PIM osSlideshow+Theme switcher+Ultimate Seo Urls+Icone stock+crawlprotect+Who's Online Enhancement+Master password+lien suivi colis
Go to the top of the page
 
chti_poupon
posté 20 Apr 2013, 15:08
Message #6


Ceinture noire OSC
Icône de groupe

Groupe : TechDev
Messages : 2744
Inscrit : 9-September 08
Lieu : Douai
Membre no 22915



Las !
Dans mon footer.php, j'ai:
Code
    <td class="footer">&nbsp;&nbsp;<?php echo strftime(DATE_FORMAT_LONG); ?>&nbsp;&nbsp;

et dans french.php :
Code
date_default_timezone_set ("Europe/Berlin");
setlocale('LC_TIME', 'fr_FR.ISO_8859-1');

suivi de :
Code
define('DATE_FORMAT_LONG', '%A %d %B %Y'); // this is used for strftime()

Ce qui me donne :
Citation
Saturday 20 April 2013

Il semble que le serveur ne prenne pas en compte le setlocale(): c'est annoncé dans le cadre Warning de cette page
C'est pourquoi j'utilise maintenant DATE_TIME_FORMAT, qui me donne
Citation
20/04/2013 16:04:16
indépendant de la langue (pas des coutumes) et informatif.
avec dans french.php:
Code
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');

Bref, il faut toujours faire des pirouettes pour obtenir le format de date souhaité.
Chti poupon
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 20th November 2017 - 20:12
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)