loop in time using laravel 8

mohamed

please i need your help to get time looping i have a start time and end time , and i want to list of array times with added 30 minutes i am trying to get code like below but array return empty

$available_times = [];
$module = $garage->work_time;
$from = date("H:i", strtotime($module->from));
$to = date("H:i", strtotime($module->to));
$time = strtotime($from);
$new_time = date("H:i", strtotime('30 minutes', $time));
if(!in_array(date("h:i a" , strtotime($new_time)), $available_times))
{
    array_push($available_times , date("h:i a" , strtotime($new_time)));
}
while($new_time < $to)
{
    $time = strtotime($new_time);
    $new_time = date("H:i", strtotime('+30 minutes', $new_time));
    if($new_time . ':00' >= $to)
    {
        break;
    }

    if(!in_array(date("h:i a" , strtotime($new_time)), $available_times))
    {
        array_push($available_times , date("h:i a" , strtotime($new_time)));
    }

}
return $available_times;

can any one help me i want a list like that

[
  "9:30 am",
"10:00 am",
"10:30 am",
"11:00 am",
"11:30 am",
]

..etc,

Rwd

You can simply your code by using a mixture of DateTime, DatePeriod and DateInterval:

$start = new DateTime($garage->work_time->from);
$end = new DateTime($garage->work_time->to);
$interval = DateInterval::createFromDateString('30 minutes');

$period = new DatePeriod($start, $interval, $end);

$available_times = [];
foreach ($period as $time) {
    $available_times[] = $time->format('h:i a');
}

return $available_times;

Alternatively, since Laravel comes with Carbon, you could use CarbonPeriod instead:

use Carbon\CarbonPeriod;

$periods = CarbonPeriod::create($garage->work_time->from, '30 minutes', $garage->work_time->to);

$available_times = array_map(function ($period) {
    return $period->format('h:i a');
}, $periods->toArray());

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Comment désactiver ou activer le balayage de Viewpager dans Android

  2. 2

    Créer une table externe Hive à partir de fichiers de parquet partitionnés dans Azure HDInsights

  3. 3

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  4. 4

    Enregistrer le chemin de l'image de la galerie vers la base de données de la salle et l'afficher dans la liste des recycleurs

  5. 5

    Concaténer des variables dans ansible

  6. 6

    ESP8266 HADRWARE MINUTERIE, USA pour cocher une macro étrange

  7. 7

    Stop jQuery execution after one time execution

  8. 8

    Filtrer les données en fonction des conditions d'une trame de données

  9. 9

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

  10. 10

    obtenir le nombre de marqueur affiché sur la carte

  11. 11

    Comment centrer un div tout en utilisant la transition et transformer avec l'échelle

  12. 12

    Comment utiliser le stockage local et le supprimer lorsqu'il n'est pas nécessaire

  13. 13

    Redirection HTTP vers HTTPS dans Java à l'aide de HTTPURLConnection

  14. 14

    Comment envoyer plusieurs variables de la lame au contrôleur

  15. 15

    Comment définir du texte dans un QLabel et afficher les caractères '<>'?

  16. 16

    Échec de l'exécution de 'insertBefore' sur 'Node': le paramètre 1 n'est pas de type 'Node'

  17. 17

    System.Data.SqlClient.SqlException: 'Nom de colonne non valide' ApplicationRoleId '.'

  18. 18

    Générer une variable binaire avec une corrélation prédéfinie avec une variable déjà existante

  19. 19

    la mise en place Spring dans Eclipse - Échec d'initialisation de contexte

  20. 20

    comment afficher un bouton au-dessus d'un autre élément ?

  21. 21

    Uncaught TypeError: map n'est pas une fonction dans Reactjs avec Firebase

chaudétiquette

Archive