2010-07-12 2 views
1

J'essaie de faire une fonction d'horodatage qui vérifie qui affiche une heure si elle a été inférieure à 24 heures et une date si elle a été plus . Si quelqu'un sait d'une manière prédéfinie de le faire s'il vous plaît faites le moi savoir.Aide de script PHP simple, if/else/timestamps/inférieur à/bit-shift

De toute façon, j'ai commencé avec ce simple php qui est supposé retourner un nombre inférieur à 86400 si $ temprow1 ou 2 sont à moins de 86400 secondes à partir de maintenant, ou echo full si cela fait plus d'un jour. Ce code produit à la fois des nombres, ce qui ne devrait pas être le cas. Quelqu'un peut-il m'aider à comprendre ce qui ne va pas? Merci!

$temprow1 = 1278867245; 
$temprow2 = 1258567245; 

$tempvar008 = time()-$temprow1; 
$tempvar009 = time()-$temprow2; 

if($tempvar008 << 86400){echo $tempvar008;}else{echo 'full';} 
echo '<br>'; 
if($tempvar009 << 86400){echo $tempvar009;}else{echo 'full';} 
+2

Est-ce que le '' 'est une faute de frappe? Sinon, c'est le problème. –

Répondre

5

Vous utilisez un seul < pour des comparaisons inférieures à. << est pour le décalage de bits.

+0

ohhhhh, c'est pourquoi dans un autre script <= a bien fonctionné mais pas <<. J'ai toujours pensé que << signifiait moins que. Merci pour la clarification! – Derek

0

Je ne suis pas sûr de ce que l'<< est à peu près dans le contexte d'un si, mais essayez ceci:

$temprow1 = 1278867245; 
$temprow2 = 1258567245; 

$tempvar008 = time()-$temprow1; 
$tempvar009 = time()-$temprow2; 

if($tempvar008 < 86400){echo $tempvar008;}else{echo 'full';} 
echo '</br>'; 
if($tempvar009 < 86400){echo $tempvar009;}else{echo 'full';} 
0
$stamp1 = 1234567890; 
$stamp2 = 1234567891; 
$stampd = $stamp2 - $stamp1; 
if ($stampd < 86400) // code for showing time difference 
else // code for showing date difference

Pour continuer à utiliser au lieu de votre code, s'il vous plaît remplacer << avec <.