Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Améliorations constructeur jDateTime

Posted by fatbeard on 07/22/2010 14:38

Bonjour bonjour,

Je travaille pas mal avec les jDateTime en ce moment, et je trouve ça dommage que le format des params du constructeur soit si rigide, car cela alourdit un peu le code.. Quand on travaille avec pas mal de dates, ça rend le code moins facile à lire.

Si on pouvait construire ces jDateTime avec autre chose que des entiers, ça serait quand même chouette !

Exemples :

Je récupère un DAO avec un champs datetime et je veux comparer avec une autre date (aujourd'hui, tiens !) Actuellement, ça donne :

if ($daoObj = jDao::get('dao~sel')->get($key)) {

<code>
    $now = new jDateTime():
    $now->now();

    $objDT = new jDateTime();
    $objDT->setFromString($daoObj->start_date, jDateTime::DB_DTFORMAT);

    if ($objDT->compareTo($objDT) >= 0) { ... }

}

</code>

Avec quelques modifs, ça pourrait donner :

if ($daoObj = jDao::get('dao~sel')->get($key)) {

<code>
    $now = new jDateTime('now');

    $objDT = new jDateTime($daoObj->start_date, jDateTime::DB_DTFORMAT)

    if ($objDT->compareTo($daoObj) >= 0) { ... }

}

</code>

C'est pas que de la flemme, quand on fait calcul sur calcul de date et durée, le code devient très vite surchargé... Ca peut se faire vite fait, bien fait, sans introduire de régressions sur le code existant, et je veux bien m'en charger si l'idée convient.

  [Opened] Améliorations constructeur jDateTime

Reply #1 Posted by foxmask on 07/22/2010 15:26

Bonjour,

un ticket avec tout cela pour en discuter pourra faire p-e avancer dans ton sens :)

cordialement.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Améliorations constructeur jDateTime

Reply #2 Posted by laurentj on 07/25/2010 13:32

En même temps, pour ce que tu veux faire dans cet exemple précis, c'est à dire comparer deux dates, il n'est pas utile d'utiliser jDatetime, il y a plus simple :

if ($daoObj = jDao::get('dao~sel')->get($key)) {
<code>
    if ($daoObj->start_date >= date('Y-m-d H:i:s')) { 

    }

}

</code>

Les dates en base de données, ce ne sont que des chaines, et dont les informations sont organisées de manière à être comparer très facilement ;-)

Maintenant, propose un patch si tu veux...

  [Opened] Améliorations constructeur jDateTime

Reply #3 Posted by fatbeard on 07/27/2010 13:42

L'exemple était volontairement simplifié pour la discussion :) Bref, j'écrirai un patch pendant vacances... la semaine prochaine.

 
Page
  1. Améliorations constructeur jDateTime