scripts pour la gestion des dates
12 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
scripts pour la gestion des dates
salut !
connaissez vous / conseillez vous / déconseiller vous des scripts pour la gestion de dates ?
(comparaison de dates, soustraction de dates, soustraction d'année, de mois, de jours, etc..)
je n'en connais aucun et avant de m'aventurer dans la jungle que me proposera google je fais appel à votre expérience et vos connaissance.
merci
connaissez vous / conseillez vous / déconseiller vous des scripts pour la gestion de dates ?
(comparaison de dates, soustraction de dates, soustraction d'année, de mois, de jours, etc..)
je n'en connais aucun et avant de m'aventurer dans la jungle que me proposera google je fais appel à votre expérience et vos connaissance.
merci
en fait en php, il n'existe aucune fonction permettant de faire une comparaison entre deux dates, par exemple, ou de soustraire une date à une autre simplement, ou encore pour un dernier exemple, ajouter/déduire un certain temps donnée qui peut être en ANNEE, MOIS, JOUR, MINUTE, etc.. à une date.
c'est plus clair ?
c'est plus clair ?
-

nickargall - WRInaute accro

- Messages: 5321
- Inscription: Lun Juin 13, 2005 14:13
$date1-$date2
Bon ok je
Bon ok je
Ouep
en voilà une qui fait bien son boulot
en voilà une qui fait bien son boulot
- Code: Tout sélectionner
/*
$interval can be:
yyyy - Number of full years
q - Number of full quarters
m - Number of full months
y - Difference between day numbers
(eg 1st Jan 2004 is "1", the first day. 2nd Feb 2003 is "33". The datediff is "-32".)
d - Number of full days
w - Number of full weekdays
ww - Number of full weeks
h - Number of full hours
n - Number of full minutes
s - Number of full seconds (default)
*/
function datediff($interval, $datefrom, $dateto, $using_timestamps = false)
{
if (!$using_timestamps) {
$datefrom = strtotime($datefrom, 0);
$dateto = strtotime($dateto, 0);
}
$difference = $dateto - $datefrom; // Difference in seconds
switch($interval) {
case 'yyyy': // Number of full years
$years_difference = floor($difference / 31536000);
if (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom), date("j", $datefrom), date("Y", $datefrom)+$years_difference) > $dateto) {
$years_difference--;
}
if (mktime(date("H", $dateto), date("i", $dateto), date("s", $dateto), date("n", $dateto), date("j", $dateto), date("Y", $dateto)-($years_difference+1)) > $datefrom) {
$years_difference++;
}
$datediff = $years_difference;
break;
case "q": // Number of full quarters
$quarters_difference = floor($difference / 8035200);
while (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($quarters_difference*3), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
$months_difference++;
}
$quarters_difference--;
$datediff = $quarters_difference;
break;
case "m": // Number of full months
$months_difference = floor($difference / 2678400);
while (mktime(date("H", $datefrom), date("i", $datefrom), date("s", $datefrom), date("n", $datefrom)+($months_difference), date("j", $dateto), date("Y", $datefrom)) < $dateto) {
$months_difference++;
}
$months_difference--;
$datediff = $months_difference;
break;
case 'y': // Difference between day numbers
$datediff = date("z", $dateto) - date("z", $datefrom);
break;
case "d": // Number of full days
$datediff = floor($difference / 86400);
break;
case "w": // Number of full weekdays
$days_difference = floor($difference / 86400);
$weeks_difference = floor($days_difference / 7); // Complete weeks
$first_day = date("w", $datefrom);
$days_remainder = floor($days_difference % 7);
$odd_days = $first_day + $days_remainder; // Do we have a Saturday or Sunday in the remainder?
if ($odd_days > 7) { // Sunday
$days_remainder--;
}
if ($odd_days > 6) { // Saturday
$days_remainder--;
}
$datediff = ($weeks_difference * 5) + $days_remainder;
break;
case "ww": // Number of full weeks
$datediff = floor($difference / 604800);
break;
case "h": // Number of full hours
$datediff = floor($difference / 3600);
break;
case "n": // Number of full minutes
$datediff = floor($difference / 60);
break;
default: // Number of full seconds (default)
$datediff = $difference;
break;
}
return $datediff;
}
waouh! je ne dis pas non. ( je galère un peu avec ces dates
)
une question : quel est la façon la plus facile de gérer le fuseau horaire ?
parce qu'il existe plusieurs solutions, dont celle auxquels je pense :
- changer le fuseau horaire par défaut en fonction de l'internaute et ces paramètre si connu avec la fonction : date_default_timezone_set()
=> ça semble le plus simple, mais je ne sais pas si les date d'une base de données seront automatique convertie en fonction du fuseau horaire, peut être que quelqu'un peu me donner la réponse
sinon pour chaque date afficher prendre le fuseau horaire de l'internaute et soustraire ou ajouter à chaque fois le temps de différence..
c'est un truc de fou quand même
une question : quel est la façon la plus facile de gérer le fuseau horaire ?
parce qu'il existe plusieurs solutions, dont celle auxquels je pense :
- changer le fuseau horaire par défaut en fonction de l'internaute et ces paramètre si connu avec la fonction : date_default_timezone_set()
=> ça semble le plus simple, mais je ne sais pas si les date d'une base de données seront automatique convertie en fonction du fuseau horaire, peut être que quelqu'un peu me donner la réponse
sinon pour chaque date afficher prendre le fuseau horaire de l'internaute et soustraire ou ajouter à chaque fois le temps de différence..
c'est un truc de fou quand même
thierry8 a écrit:en fait en php, il n'existe aucune fonction permettant de faire une comparaison entre deux dates, par exemple, ou de soustraire une date à une autre simplement, ou encore pour un dernier exemple, ajouter/déduire un certain temps donnée qui peut être en ANNEE, MOIS, JOUR, MINUTE, etc.. à une date.
c'est plus clair ?
euh... ben si... tu peux soustraire une date à une autre et encore plus facilement rajouter ou déduire un nombre à une date... je vois pas où est le pb meme
- Code: Tout sélectionner
$timestamp = time()-300; // Maintenant - 5 mns
$comparaisonDate = date ('Y-m-d H:i:s', $timestamp); // transforme le timestamp en date
Ca te donne la date du jour - 5 minutes
C'est un exemple parmi d'autres
Salut,
Et du coté de mysql? Il y a pas de fonctions qui font du bon boulot au niveau des calculs de date... (bien sûr ça entraine une connexion à la base mais c'est quand même très pratique)
http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
Et du coté de mysql? Il y a pas de fonctions qui font du bon boulot au niveau des calculs de date... (bien sûr ça entraine une connexion à la base mais c'est quand même très pratique)
http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
12 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Découpage du forum webmaster en 2 forums
- Gestion des langues et des sessions en PHP / MySQL
- Google Earth v4 ajoute la dimension temporelle et bien d'autres fonctions
- Google Labs lance Google Alternate Views
- Google enrichit sa recherche de news
- La plateforme de blogs TextCube rachetée par Google
- Comment être numéro 1 sur Google ?
- Formation Google Analytics Marseille : 12-13 Nov. 2009
- Ranking Metrics propose désormais des audits de référencement
- Etude de Googlebot, le robot d'indexation de Google
Consultez la description détaillée des produits ou services de Google suivants : Google Alternate Views
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités




le forum