Ciao, facendo alcune prove non riuscito ad avere un script funzionante, vorrei qualche parere, se va bene cosi oppure potrebbe essere migliorato. Posto il codice prodotto:
Codice PHP:
<?php
// Orari range
$inizio = ('22:00')*60;
$fine = ('06:00')*60;
// Costi
$costo_diurno = '11,54'; //�
$costo_notturno = '13,04'; //�
$costo_festivo = '15,05'; //�
$turno_inizio = trim($_POST['inizio'])*60;
$turno_fine = trim($_POST['fine'])*60;
//$turno_inizio = ('05:30')*60; // inzio 19:00
//$turno_fine = ('12:00')*60;// fine 23:15
// Condizione che si verifica se tuno_inizio e fine si trova tra 06:00 e 22:00 es. 12:00 - 18:00
if ($turno_inizio >= $fine && $turno_fine <= $inizio){
// Operazioni da fare
$xx = ($turno_fine - $turno_inizio)/60;
$nn = '0';
$fe = '0';
$cd = number_format($xx * $costo_diurno,2,'.','');
$cn = '0';
$cf = '0';
}
// Condizione che si verifica se tuno_inizio e fine si trova tra 22:00 e 06:00 es. 01:00 - 03:00
if ($turno_inizio >= $inizio && $turno_fine <= $fine) {
// Operazioni da fare
$xx = (1440 - $turno_inizio + $turno_fine)/60;
$nn = "0";
$fe = '0';
$cd = '0';
$cn = number_format($xx * $costo_notturno,2,'.','');
$cf = '0';
}
// Condizione che si verifica se tuno_inizio e fine si trova accavallo di 22:00 e 06:00 es. 19:00 - 23:00
if ($turno_inizio <= $inizio && $turno_fine >= $inizio) {
// Operazioni da fare
$xx = (1320 - $turno_inizio)/60;
$nn = ($turno_fine - 1320)/60;
$fe = '0';
$cd = number_format($xx * $costo_diurno,2,'.','');
$cn = number_format($nn * $costo_notturno,2,'.','');
$cf = '0';
}
// Condizione che si verifica se tuno_inizio e fine si trova accavallo di 06:00 e 22:00 es. 05:00 - 10:00
if ($turno_inizio <= $fine && $turno_fine >= $fine) {
// Operazioni da fare
$xx = ($turno_fine - 360)/60;
$nn = (360 - $turno_inizio)/60;
$fe = '0';
$cd = number_format($xx * $costo_notturno,2,'.','');
$cn = number_format($nn * $costo_diurno,2,'.','');
$cf = '0';
}
$return = array(
'a' => $xx,
'b' => $nn,
'c' => $fe,
'd' => $cd,
'e' => $cn,
'f' => $cf
);
$json = json_encode($return);
echo $json;
?>
Devo apportare le seguenti correzioni: Fare il calcolo non solo delle ore, ma anche dei minuti, esempio calcolare anche 15:35. Come potrei fare ? ho provato con number_format ma non funziona come vorrei.
Qui trovare un esempio online: http://www.turnips.it/strao.php
Accetto qualsiasi consiglio.
Grazie