Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: Eregi per campo Ora

  1. #1

    Eregi per campo Ora

    Salve a tutti, premetto che ho hià letto il manuale ma che non riesco ancora ad arrivare alla conclusione voluta.

    Allora io ho una variabile $time che deve contenere un ora del tipo HH:SS quindi deve avere i ":" in mezzo alle due sottostrnghe, le ore da 01 a 24 (e non 00) e i secondi ovviamente da 00 a 59..

    la mia eregi è questa:

    eregi("([01,24])+: ([0-59]{2})",$time);

    ma non va...
    per l'ora mi accetta lo 00 e non le 23...aiutatemi perchè non so più che pesci pigliare!

  2. #2
    srcrivi un esempio di $time
    e srcrivi un esempio di quello che vuoi ottenere
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    un esempio è 22:00 oppure 23:30 oppure 15:01 oppure 01:00
    oppure 00:01 ma non (oltre che a essere solo numerico)

    00:00 oppure 00:** cioè i minuti da 00 a 59 e le ore posso essere 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 ,21,22,23,24

    è abbastanza chiaro???

  4. #4
    Originariamente inviato da sally3000
    un esempio è 22:00 oppure 23:30 oppure 15:01 oppure 01:00
    oppure 00:01 ma non (oltre che a essere solo numerico)

    00:00 oppure 00:** cioè i minuti da 00 a 59 e le ore posso essere 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 ,21,22,23,24

    è abbastanza chiaro???
    no, e' tutto come prima ...


    cosa deve fare l'eregi ... vuoi che una variabile tipo

    $time = '00:34';

    diventi

    '24:34'

    ???


    o la variabile e' presa da un campo di testo ?
    oppure e' presa da un campo date ?

    specifica esattamente da dove viene preso questo tempo ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    viene presa da un campo testo

    <INPUT type=text name=time>

    e i dati che ti ho dato sono quelli ammessi...

  6. #6
    questo e' un esempio ...

    codice:
    $time = '00:23';
    function lessThan10( $var ) {
    	$var = (int)$var == 0 ? 24 : (int)$var;
    	return $var < 10 ? '0'.$var : (string)$var;
    }
    echo preg_replace( "/([0-9]{1,2})\:([0-9]{2})/e", "lessThan10(\\1).':\\2'", $time );
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    qualcosa di meno complicato??? a me funziona il mio ma ... non accetta il numero 23 nelle ore...

  8. #8
    e' complicato il copia e incolla ? :master:


    boh, mi sa che non ho ancora capito da dove arriva questo tempo e cosa ci devi fare, se e' solo scrivere 24 al posto di 00 il mio va bene, ma va bene su una variabile di quel tipo, pero' dovrebbe andare anche su testo vario piu' quel tipo di dato ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #9
    non ho capito la tua ultima frase... io non volgio che al 00 venga sostituito 24, solo che controlli se l'ora ricevuta : una normalissima stringa '15:25' sia fomrata da:
    2 sottostringhe divise da ":" dove la prima stringa può avere 23 soluzioni ovvero: (01,02,03..24) e la seconda (00,01,02,..29) quello che ti sto dicendo è che il controllo per i minuti funziona ma per le ore no perchp se scrivo 00:12 me lo accetta, se scrivo 23:12 mi da l'errore... la mia funzione è questa:


    function c_time ($time) {

    $r=eregi("([01,24])+: ([0-59]{2})",$time);

    return $r;

    }

    $time="23:15";
    if (c_time($time)==false) $msg="Error";
    else $msg="";

  10. #10
    codice:
    function c_time( &$time ) {
    	return preg_match("/^[0-9]{1,2}\:[0-9]{2}$/", $time );
    }
    
    $time = '23:15';
    if( c_time($time) == false ) {
    	$msg="Error";
    }
    else {
    	$msg="Ok";
    }
    echo $msg;

    anche se se ho capito bene, sarebbe meglio questa:
    codice:
    function c_time( &$time ) {
    	$time = &explode( ':', $time );
    	$time[0] = (int)$time[0];
    	$time[1] = (int)$time[1];
    	if( $time[0] < 0 || $time[0] > 23 ) {
    		return false;
    	}
    	if( $time[1] < 0 || $time[1] > 59 ) {
    		return false;
    	}
    	return true;
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.