bituniverse.com Foren-Übersicht bituniverse.com
Entwickler Forum
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Wiedervorlage-Datum und Wiedervorlage-Uhrzeit ermitteln

 
Neues Thema eröffnen   Neue Antwort erstellen    bituniverse.com Foren-Übersicht -> Code-Schnipsel
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Beepa



Anmeldedatum: 05.11.2007
Beiträge: 53
Wohnort: Düsseldorf

BeitragVerfasst am: Mi 14 Nov, 2007 23:38    Titel: Wiedervorlage-Datum und Wiedervorlage-Uhrzeit ermitteln Antworten mit Zitat

Erlaube mir auch mal ein wenig in der Code-Kiste zu kramen und ein paar Snippets Online zu stellen Very Happy

Da ich aktuell im Callcenter-Bereich als Programmierer tätig bin,
anbei ein paar Funktionen aus dem "täglichen Leben" - ich hoffe
gut genug kommentiert:

Vorgabe / Problemstellung:
User darf nur in einem vorgegebenem Rahmen ein Datum und eine
Uhrzeit für eine Wiedervorlage angeben, um sicherzustellen, dass der
Kunde erneut innerhalb der Geschäftszeiten kontaktiert werden kann
(Quotenfänger legen gerne mal eine WV außerhalb der Zeiten ab,
um dem "sicheren Negativ-Kontakt" zu entgehen Wink )

Php:
  1. <?php
  2.  
  3. /**
  4.  * Funktion die das Array für die Wiedervorlage-Tage befüllt
  5.  * Der Parameter $days gibt an, wie weit die WV in die Zukunft
  6.  * gelegt werden darf.
  7.  *
  8.  * @param   integer   $days: Heute + $days = Max. WV-Datum - Default: 14 Tage
  9.  * @param   boolean   $sundays: Sollen auch Sonntage zur Auswahl stehen - Default: false
  10.  */
  11. function getScheduleDates($days = 14, $sundays = false)
  12. {
  13.   // Array für die WV-Daten deklarieren
  14.   $schedule_dates = array();
  15.  
  16.   // Array für die deutschen Tagesnamen-Abkürzungen deklarieren
  17.   $ger_days = array(0 => 'So.', 1 => 'Mo.', 2 => 'Di.', 3 => 'Mi.', 4 => 'Do.', 5 => 'Fr.', 6 => 'Sa.');
  18.  
  19.   // Aktuelle Timestamp festhalten
  20.   $timestamp = time();
  21.  
  22.   // Ein Tag = 86400 Sekunden;
  23.   $one_day = 86400;
  24.  
  25.   for($i = 0; $i <= $days; $i++)
  26.   {
  27.     /**
  28.      * Den Numerischen Wert des gewünschten Tages ermitteln
  29.      * 0 = Sonntag
  30.      * 1 = Montag
  31.      * 2 = Dienstag
  32.      * 3 = Mittwoch
  33.      * 4 = Donnerstag
  34.      * 5 = Freitag
  35.      * 6 = Samstag
  36.      */
  37.     $numeric_date = date('w', $timestamp);
  38.    
  39.     // Wiedervorlagedatum für die Anzeige
  40.     $sched_day = date('d.m.Y', $timestamp) . ' (' . $ger_days[$numeric_date] . ') ';
  41.    
  42.     // Wiedervorlagedatum zum speichern
  43.     $sched_day_db = date('Y-m-d', $timestamp);
  44.    
  45.     // Prüfen ob der gewünschte Tag ein Sonntag ist
  46.     if($numeric_date == 0)
  47.     {
  48.       // Prüfen ob Sonntage erlaubt sind
  49.       if($sundays == true)
  50.       {
  51.         $schedule_dates[$sched_day_db] = $sched_day;
  52.       }
  53.     }
  54.     else
  55.     {
  56.       $schedule_dates[$sched_day_db] = $sched_day;
  57.     }
  58.    
  59.     // Timestamp erhöhen
  60.     $timestamp = $timestamp + $one_day;
  61.    
  62.   } // ENDE: for($i = 0; $i <= $days; $i++)
  63.  
  64.   return $schedule_dates;
  65.  
  66. } // ENDE: function getScheduleDates($days = 14, $sundays = false)
  67.  
  68. ?>

Php:
  1. <?php
  2.  
  3. /**
  4.  * Funktion die das Array für die Wiedervorlage-Uhrzeiten befüllt
  5.  * Der Parameter $start_time gibt an, um wieviel Uhr die früheste,
  6.  * $end_time wann die späteste Wiedervorlage gelegt werden darf.
  7.  *
  8.  * @param   integer   $start_time: früheste WV-Zeit - Default: 6 - Bsp.: 06:00:00
  9.  * @param   integer   $end_time: späteste WV-Zeit - Default 19 - Bsp; 19:45:00
  10.  */
  11. function getScheduleTimes($start_time = 6, $end_time = 19)
  12. {
  13.   // Array deklarieren
  14.   $schedule_times = array();
  15.  
  16.   for($i = $start_time; $i <= $end_time; $i++)
  17.   {
  18.     if($i <= 9)
  19.     {
  20.       $i = '0' . $i;
  21.     }
  22.     $schedule_times[] = $i . ':00:00';
  23.     $schedule_times[] = $i . ':15:00';
  24.     $schedule_times[] = $i . ':30:00';
  25.     $schedule_times[] = $i . ':45:00';
  26.    
  27.   } // ENDE: for($i = $start_time; $i <= $end_time; $i++)
  28.  
  29.   return $schedule_times;
  30.  
  31. } // ENDE: function getScheduleTimes($start_time = 6, $end_time = 19)
  32.  
  33. ?>

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beepa



Anmeldedatum: 05.11.2007
Beiträge: 53
Wohnort: Düsseldorf

BeitragVerfasst am: Do 15 Nov, 2007 14:32    Titel: Anwendungsbeispiel für obige Beispiele Antworten mit Zitat

Dank dem Hinweis von Jens Wink noch ein Anwendungsbeispiel für die o.g. Funktionen...

Die Vorgabe lag seinerzeit darauf, dass der User 2 Select-Boxen zur
Verfügung gestellt bekommt, mit denen dann die Datums- / Uhrzeitauswahl
getroffen werden kann.

Wenn man also die Funktionen im Code deklariert und den folgenden Code in
sein HTML-Form einfügt, stehen die beiden Boxen befüllt zur Verfügung:

Select-Box für die Tage:

Php:
  1. <?php
  2.  
  3.   // der Übersicht wegen Parameter deklarieren
  4.   $max_sched_days = 14; // Anzahl der max. Tage für die WV
  5.   $use_sundays = false; // auch Sonntage zulassen?
  6.  
  7.   // Array mit den WV-Tagen befüllen
  8.   $sched_days_array = getScheduleDates($max_sched_days, $use_sundays);
  9.  
  10. ?>
  11.   <select size="1" name="sched_date" id="sched_date">
  12.     <?php
  13.       // Select-Box anhand des Arrays mit Optionen befüllen
  14.       // $db_date ist im Format JJJJ-MM-TT - also im DATE-Format für MySQL
  15.       // $show_date ist für die Anzeige
  16.       foreach($sched_days_array as $db_date => $show_date)
  17.       {
  18.         echo '<option value="' . $db_date . '">' . $show_date . '</option>';
  19.       }
  20.     ?>
  21.   </select>


Select-Box für die Uhrzeiten:

Php:
  1. <?php
  2.  
  3.   // der Übersicht wegen Parameter deklarieren
  4.   $min_sched_time = 8; // WV ab 08:00:00 Uhr möglich
  5.   $max_sched_time = 19; // WV bis 19:45:00 Uhr möglich
  6.  
  7.   // Array mit den WV-Uhrzeiten befüllen
  8.   $sched_times_array = getScheduleTimes($min_sched_time, $max_sched_time);
  9.  
  10. ?>
  11.   <select size="1" name="sched_times" id="sched_times">
  12.     <?php
  13.       // Select-Box anhand des Arrays mit Optionen befüllen
  14.       // $time ist im Format HH:MM:SS - also im TIME-Format für MySQL
  15.       foreach($sched_times_array as $time)
  16.       {
  17.         echo '<option value="' . $time . '">' . $time . '</option>';
  18.       }
  19.     ?>
  20.   </select>

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    bituniverse.com Foren-Übersicht -> Code-Schnipsel Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB2.de
Powered by WebRing.