Page 1 sur 2
Timestamp d'une date
Posté : 01 sept. 2012, 03:48
par rimie
Bonjour,
C'est la premiere fois que je rencontre ce genre de problemes, recuperer le timestamp d'une date a t il une date limite???
<?php
$dob = '9 May 1900';
$timestamp = strtotime($dob);
echo 'dob:'.$timestamp;
?>
Ne retourne rien
Merci
Re: Timestamp d'une date
Posté : 01 sept. 2012, 07:12
par schim59
Bonjour,
le timestamp s'arrete en janvier 2039 et commence en ...1970 je crois
Sinon il manque le 2nd parametre de strtotime
http://php.net/manual/fr/function.strtotime.php
Bon codage.
Re: Timestamp d'une date
Posté : 01 sept. 2012, 08:44
par rimie
meme si avant la date tu 1970, on aura des chiffres en moins
Re: Timestamp d'une date
Posté : 01 sept. 2012, 11:09
par moogli
meme si avant la date tu 1970, on aura des chiffres en moins
pas exactement
Note:
L'intervalle de validité d'un timestamp va du Vendredi 13 Décembre 1901 20:45:54 UTC au Mardi 19 Janvier 2038 03:14:07 UTC. (Cela correspond aux dates maximales et minimales pour un entier de 32 bits signé.) Toutes les plates-formes ne supportent pas les timestamp négatifs et dans ce cas, l'intervalle de date sera limitée à environs l'époque Unix. Cela signifie que les dates antérieures au 1 Janvier 1970 ne fonctionneront pas sous Windows, quelques distributions Linux et quelques autres systèmes. PHP 5.1.0 ainsi que les versions plus récentes outrepassent cette limitation.
Pour les versions 64-bit de PHP, l'intervalle valide d'un timestamp est réellement infini, sachant que 64 bits peut représenter approximativement 293 milliards d'années dans n'importe quelle direction.
ta réponse est oui
les info intéressante en gras dans l'extrait de la doc
@+
Re: Timestamp d'une date
Posté : 05 sept. 2012, 08:45
par rimie
je pense qu'on peut outrepasser cette limitation:
PHP Version 5.3.2-1ubuntu4.17
et la commande affiche toujours RIEN
Re: Timestamp d'une date
Posté : 05 sept. 2012, 10:12
par moogli
Toutes les plates-formes ne supportent pas les timestamp négatifs et dans ce cas, l'intervalle de date sera limitée à environs l'époque Unix. Cela signifie que les dates antérieures au 1 Janvier 1970 ne fonctionneront pas sous Windows, quelques distributions Linux et quelques autres systèmes
et la commande affiche toujours RIEN
ce n'est pas possible, avec ton code tu doit au moins avoir dob: affiché !
La fonction strtotime doit te retourner false. si c'est le cas il a des chances que rentre dans ce cas.
essai de changer le 1900 en 1999 pour valider l'utilisation de strtotime.
ensuite il y a des exemples d'utilisation de date antérieure à 1970 dans la doc de strtotime.
Si tu nous explique ce que tu veux faire peux être que l'on pourras t'aider à contourner la chose
@+
Re: Timestamp d'une date
Posté : 05 sept. 2012, 10:33
par Mazarini
Pour traduire, ce que dit Moogli, essayes :
<?php
echo 'dob 1 : "',strtotime('9 May 1900'),'"<br>';
echo 'dob 2 : "',strtotime('9 May 1980'),'"<br>';
echo 'dob 3 : "',strtotime('9 May 2090'),'"<br>';
?>
Autrement, ton Ubuntu est 32 ou 64 bits ?
C'est à dire des packages i386, i586 ou i686 => 32
et amd64 ou a64 => 64 (de mémoire)
Ca se voit lors de l'installation des packages je crois.
Re: Timestamp d'une date
Posté : 06 sept. 2012, 03:12
par rimie
Pour traduire, ce que dit Moogli, essayes :
<?php
echo 'dob 1 : "',strtotime('9 May 1900'),'"<br>';
echo 'dob 2 : "',strtotime('9 May 1980'),'"<br>';
echo 'dob 3 : "',strtotime('9 May 2090'),'"<br>';
?>
Autrement, ton Ubuntu est 32 ou 64 bits ?
C'est à dire des packages i386, i586 ou i686 => 32
et amd64 ou a64 => 64 (de mémoire)
Ca se voit lors de l'installation des packages je crois.
c'est 32 bit en i386
alors la j'ai bien compris, sinon une solution alternative??
Re: Timestamp d'une date
Posté : 06 sept. 2012, 07:02
par schim59
Bonjour,
Oui, mais la quelle j'en sais rien ....
Peut etre une autre fonction ou une bibliothèque.
Quelle est le USE CASE du code ? Parceque là en faisant :
echo '01 01 1900';
Ca suffit ^^
Bon codage.
Re: Timestamp d'une date
Posté : 06 sept. 2012, 09:00
par moogli
Bonjour,
Oui, mais la quelle j'en sais rien ....
Peut etre une autre fonction ou une bibliothèque.
Quelle est le USE CASE du code ? Parceque là en faisant :
echo '01 01 1900';
Ca suffit ^^
Bon codage.
Le principal intérêt de gérer une date d'utiliser les fonctions de calcule de date déjà existante (dans le plus part de langage, script ou SGBD).
Cela permet au l’internationalisation sans trop de soucis
alors la j'ai bien compris, sinon une solution alternative??
as tu regardé les commentaire de la doc de strtotime ?
Il y a, de mémoire, un commentaire qui en parle.
Après si celle ci provient d'un SGBD peut être peut tu l'utiliser pour un faire ce que tu souhaite. Le tout est savoir ce que tu veux en faire au final de ce timestamp
@+
Re: Timestamp d'une date
Posté : 06 sept. 2012, 09:49
par schim59
as tu regardé les commentaire de la doc de strtotime ?
Il y a, de mémoire, un commentaire qui en parle.
Ils parlent de chiffre négatif mais c'est pas très clair.
ps: le echo c'était c'était de l'humour ^^
DATE_create() tu connais ? je trouve pas de doc très fournie sur le sujet.
Re: Timestamp d'une date
Posté : 06 sept. 2012, 10:01
par Mazarini
Je n'ai pas de solution précise autre que passer en version 64 si la machine le supporte.
Dans le cas contraire, travailler sur des dates très anciennes ou très futur reste exceptionnel et tu peux faire l'impasse. Le seul problème probable est le calcul d'age. Pour tout ce qui est planning, je doute qu'on dépasse les bornes.
Les banques n'ont pas échappé au "bug" de l'an 2000 alors qu'ils avaient le problème depuis 1980 (prêt sur 20 ans), sans parler des centenaires qui parfois n'était plus majeur.
Re: Timestamp d'une date
Posté : 06 sept. 2012, 10:23
par rimie
voila, en gros, je stockes les donnes des chanteurs dans une BDD:
+ Nom,
+ Prenom,
+ Date de naissance (en timestamp),
+ Date du deces (si existente en timestamp),
+ etc,...
Alors je calcule l'age en meme temps en utilisant les 2 dates.
Si par exemple un chanteur a ete ne
avant 1900, c'est la ou le probleme se pose, j'ai stocke presque 106 chanteurs, alors le 107 je me suis coince

Re: Timestamp d'une date
Posté : 06 sept. 2012, 10:35
par Nours312
je stockes les donnes des chanteurs dans une BDD:
Salut :
tu devrais la stocker dans un format DATE, tu pourrait ensuite facilement demander à MySQL de te retourner l'age ...
http://dev.mysql.com/doc/refman/5.0/fr/ ... tions.html
@++
Re: Timestamp d'une date
Posté : 06 sept. 2012, 11:19
par moogli
+1
quelque soit le SGBD ceci est plus simple
@+