Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    differenza tra date che sballa

    ciao
    ho inserito questo codice per la differenza tra date

    $scadenza = dato estratto dal bd in questo formato anno - mese - giorno;

    codice:
    $oggi = getdate();
    $mese2 = $oggi['mon']; 
    $giorno2 = $oggi['mday']; 
    $anno2 = $oggi['year']; 
    
    list($anno1,$mese1,$giorno1) = explode('-',$scadenza);
    
    $diff =  mktime($mese2,$giorno2,$anno2) - mktime($mese1,$giorno1,$anno1);
    				
    //se passato				
    if($diff >=0){
    	fai così
    
    //se futuro
    }else if($diff<0){		
    	fai cosà							
    }
    allora tutto corretto sino a quando non ho inserito questa data
    2006-01-20 che sottrato con 2005-05-10

    non ha dato un numero <0 (futuro) ma >0(passato)

    perhcè?

  2. #2
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    In che formato è la data nel db?

  3. #3
    magari ... prova cosi

    $diff = mktime(0, 0 ,0, $mese2,$giorno2,$anno2) - mktime(0, 0 ,0, $mese1,$giorno1,$anno1);
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  4. #4
    grazie per esserti interessato
    cmq l'ho scritto

    anno - mese - giorno;

    e il campo della tabella è un date

  5. #5
    caspita
    hai ragione mi servivano
    0, 0 ,0
    questi per un risultato corretto!!
    ma perchè?

  6. #6
    xche mktime prende anche ore, minuti e secondi
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Fai prima a farlo direttamente in sql:

    SELECT UNIX_TIMESTAMP(CAMPO_DATA)-UNIX_TIMESTAMP() AS DIFF

  8. #8
    xche se gli serve per dei record estratti da una query usando

    IIF

    può anche spostare TUTTO i lcodice di php in massa nella query (riconvertendolo) in modo che nel recordset ti trovi un campo impostato a certi valori specifici che x te hanno un significato ben preciso (1 ad es passato, 2 => futuro, 3 => presente ... e cosi via) e quindi poi nel codice lanci uno switch/if e fai quello che devi fare
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    no mi servono tutti però con indicazione del tempo
    http://www.affafa.altervista.org/concorsi.php

    grazie per l'aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.