PHP - Traitement dates

2001-11-28 Par sujet Ninn Langel

Salut a tous,

Je suis en train d'écrire une fonction a laquelle j'envoie une date
format MySQL Date (-MM-DD), et qui me retourne qqch comme Lundi 3
Décembre 2001.

Tout va bien jusqu'à la partie qui doit définir si c'est un lundi ou un
jeudi etc.

- J'ai trouvé sur le web des bouts de code pour tout et n'importe quoi,
mais rien de ce genre. Serait-ce parce que cette fonction existe, et que
par conséquant je perds mon temps ?

Quelqu'un peut il m'éclairer ?

Merci d'avance,

Ninn Langel

--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: PHP - Traitement dates

2001-11-28 Par sujet Dominique Lovy

Salut,

 Tout va bien jusqu'à la partie qui doit définir si c'est un lundi ou un
 jeudi etc.

function  dayofweek($day,$month,$year) {
# computes day of week for any date in the Gregorian calendar
# The returned value will be 0 for a Sunday, 1 for a Monday, ...
# Source : The calendar FAQ
# http://na-tzul.pauahtun.org/CalendarFAQ/

   $a = (int)( ( 14 - $month ) / 12 ) ;
   $y = $year - $a ;
   $m = $month + 12 * $a - 2 ;
   $d = $day + $y + (int)($y/4) - (int)($y/100) + (int)($y/400)
   + (int)(31*$m/12) ;
   $d = $d % 7 ;
   return $d ;
}


Dom


--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.



Re: PHP - Traitement dates

2001-11-28 Par sujet Marc SCHAEFER

On Wed, 28 Nov 2001, Ninn Langel wrote:

 Je suis en train d'écrire une fonction a laquelle j'envoie une date
 format MySQL Date (-MM-DD), et qui me retourne qqch comme Lundi 3
 Décembre 2001.

UNIX de base supporte, par ses fonctions de temps de la bibliothèque
C standard (cf man 3 ctime, notamment la fonction localtime p.ex.)
ce genre de fonctions. On peut les appeler depuis Perl via le module
POSIX. Peut-être même depuis PHP, ce qui permettrait de réutiliser
le savoir UNIX accumulé et de ne pas devoir réapprendre à chaque fois.

Alternativement, il y a peut-être une fonction de conversion de temps
interne à MySQL.

Avec PostgreSQL on peut faire ainsi:

sfi_contacts= SELECT day, date_part('dow', day) AS jour_semaine FROM event LIMIT 1;
   day|jour_semaine
--+-
2001-11-26|1

avec dow (`day of week') 1 lundi, etc.




--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.