@virus_1010
C'è un piccolo errore nel codice che hai postato 
Scrivere
Codice PHP:
$v[time_start]
è sbagliato, time_start cosi (come time_end) sono delle costanti per la sintassi (poi php se non trova corrispondenza tra la tabella delle costanti registrate da un notice e prova a trasformarla in stringa) e si dovrebbe scrivere cosi
Codice PHP:
$v['time_start']
o
Codice PHP:
$v["time_start"]
Detto questo, non è conveniente gestire i confronti per come dici tu, ed anche per un motivo banale: nel codice che hai postato utilizzi date. Date deve richiedere al sistema operativo di dargli la data per poi convertirla come stringa (nota: la data al sistema operativo viene richiesta sotto forma di unix timestamp).
E' come se hai il macellaio sotto casa e uno si fa 10 km per andare al supermercato dove ci sta la macelleria ... che fornisce le stesse cose fornite dalla macelleria sotto casa con la stessa qualità senza avere la necessità di acquistare altro ... per sfizio praticamente.
Detto questo ... guarda le differenze di performance
Codice PHP:
<?php
$begin = microtime(true);
for($index = 0; $index <= 10000; $index++)
{
$startTime = '23:00:00';
$currentTime = date('H:i:s');
$res = $startTime >= $currentTime;
}
printf('%0.6f', microtime(true) - $begin);
echo '
';
$begin = microtime(true);
for($index = 0; $index <= 10000; $index++)
{
$res = (time() % (24 * 60 * 60)) >= (23 * 60 * 60);
}
printf('%0.6f', microtime(true) - $begin);
?>
Sulla mia macchina (ovviamente su altre macchine cambieranno i valori ma il rapporto tra questi sarà simile) i valori restituiti sono:
codice:
0.114025
0.004278
Se togli date e la data la scrivi a mano la differenza diventa praticamente nulla (in teoria ci sarebbe una considerevole differenza perché il processore dovrebbe fare molte più operazioni però nella pratica i processori moderni possono eseguire operazioni su stringhe con una certa velocità perché sono funzionalità previste e gestite tramite appositi componenti del processore)
Ora, vero è che non avrai mai 10000 richieste fatte a ripetizione, ma è anche vero che quest'operazione che fai li e magari, per altre cose, in altri sul conteggio finale delle performance. Non usare il date ed il confronto tra stringhe ed usare invece un confronto utilizzando un modulo e lo unix timestamp (ergo time, che si limita a richiedere lo unix timestamp e passarlo al tuo codice) rende (secondo me) più leggibile il codice e nel contempo lo rende non poco più performante.
Comunque, qui c'è un esempio di codice funzionante per come dici tu (giusto per completezza)
Codice PHP:
<?php
$startTime = '23:00:00';
$currentTime = date('H:i:s', mktime(22, 59, 59, date('m'), date('d'), date('Y')));
echo "Confronto #1 tra {$currentTime} >= {$startTime}
";
var_dump($currentTime >= $startTime);
echo "
";
$currentTime = date('H:i:s', mktime(23, 0, 0, date('m'), date('d'), date('Y')));
echo "Confronto #2 tra {$currentTime} >= {$startTime}
";
var_dump($currentTime >= $startTime);
echo "
";
$currentTime = date('H:i:s', mktime(0, 0, 1, date('m'), date('d'), date('Y')));
echo "Confronto #3 tra {$currentTime} >= {$startTime}
";
var_dump($currentTime >= $startTime);
?>
Ho scritto più volte il confronto per far vedere le varie casistiche.