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

    [indovinello caccia all'errore] confronto date

    Salve a tutti, scusate il titolo, ma mi sembra quasi di essere di fronte ad un rompicapo.

    Un applauso e il mio rispetto a chi riesce a risolvere

    Non fate caso a chiamate a funzioni che non conoscete, dall'output incollato sotto dovrebbe essere tutto chiaro.
    Codice PHP:
    $datetime date('Y-m-d H:i:s'time());         
    $offset get_option('gmt_offset')*3600
    $timestamp strtotime($datetime)+$offset;         
    $oggi date_i18n('Y-m-d'$timestamp); 
     
    echo 
    'OGGI: '.$oggi.'
    '

    echo 
    'INIZIO: '.$_POST['hlex_inizio'].'
    '

    echo 
    'FINE: '.$_POST['hlex_fine'].'
    '

         
    echo 
    'DIFF-INIZIO: '.days_between_iso($_POST['hlex_inizio'], $oggi).'
    '

    echo 
    'DIFF-FINE: '.days_between_iso($_POST['hlex_fine'], $oggi).'
    '

    echo 
    'PRIVATO: '
     
    if(
    days_between_iso($_POST['hlex_inizio'], oggi)>|| days_between_iso($_POST['hlex_fine'], $oggi)<0

        die(
    'SI'); 

    else{ 
        die(
    'NO'); 

    output:
    OGGI: 2010-04-08
    INIZIO: 2010-04-06
    FINE: 2010-04-22
    DIFF-INIZIO: -2
    DIFF-FINE: 14
    PRIVATO: SI <--- Come è possibile???
    NB:
    DIFF-INIZIO= -2 (negativo) -> days_between_iso($_POST['hlex_inizio'], oggi)>0 (FALSO)
    DIFF-FINE= 14 (positivo) -> days_between_iso($_POST['hlex_fine'], $oggi)<0 (FALSO)

    Stesso codice ma inserendo a mano le date:
    Codice PHP:
    $oggi '2010-04-08';

    $inizio '2010-04-06';
    $fine '2010-04-22';
            
    echo 
    'OGGI: '.$oggi.'
    '
    ;
    echo 
    'INIZIO: '.$inizio.'
    '
    ;
    echo 
    'FINE: '.$fine.'
    '
    ;
            
    echo 
    'DIFF-INIZIO: '.days_between_iso($inizio$oggi).'
    '
    ;
    echo 
    'DIFF-FINE: '.days_between_iso($fine$oggi).'
    '
    ;
    echo 
    'PRIVATO: ';
    if(
    days_between_iso($inizio$oggi)>|| days_between_iso($fine$oggi)<0) {
        die(
    'SI');
    } else {
        die(
    'NO');

    Output:
    OGGI: 2010-04-08
    INIZIO: 2010-04-06
    FINE: 2010-04-22
    DIFF-INIZIO: -2
    DIFF-FINE: 14
    PRIVATO: NO
    Qui l'output è giusto, ovvero PRIVATO=NO, ma tutte le date sono IDENTICHE, cosa mi sfugge?

  2. #2
    Manca un dollaro a 'oggi' nella prima chiamata alla funzione nell'if del primo pezzo di codice.

  3. #3
    doh!

    Grazie mille!
    É proprio vero che far vedere il codice a chi non l'ha scritto aiuta

  4. #4
    Aiuta anche molto un editor con syntax highlighting, una bareword ha un colore diverso da una variabile e salta subito all'occhio

  5. #5
    Originariamente inviato da k.b
    Aiuta anche molto un editor con syntax highlighting, una bareword ha un colore diverso da una variabile e salta subito all'occhio
    mannaggia, uso APTANA e mi mette lo stesso colore

    Comunque il 70% della colpa va a wordpress che nasconde i warning avvenuti nei plugin :P
    codice:
    Notice: Use of undefined constant oggi - assumed 'oggi' in C:\wamp\www\ajax_back\prova.php  on line 16
    
    Notice: Undefined offset: 2 in C:\wamp\www\ajax_back\prova.php on line 34
    
    Notice: Undefined offset: 1 in C:\wamp\www\ajax_back\prova.php on line 34
    ancora grazie

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.