php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.02.2006, 10:55  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard Timestamp 0:00Uhr aller Tage in einem bestimmten Bereich

Ich suche nach einer einfachen Methode, um aus einem Bereich (z.B. 2-3 Monate) zu allen darin enthaltenen Tagen einen Zeitstempel zu bekommen, der jeweils die Uhrzeit 0:00 repräsentiert.

Hat jemand eine Idee wie ich das realisieren kann?

THeoretisch ginge mktime(0,0,0,Monat, Tag, Jahr) Dann muss ich aber 3 Schleifen machen, in denen ich erst das Jahr, dann den Monat dann den Tag Loope. Dabei muss der Startpunkt des Monats eventuell mal die 5 sein und bei 3 Enden (wenn ich etwa über ein Jahr weg gehe) Zudem muss ich beachten, dass jeder Monat unterschiedlich viele Tage hat.

Einfacher wäre es den ersten Tag zu berechnen und dann immer 86400 darauf zu rechnen. Das kolidiert aber mit der Zeitumstellung :/

Hat jemand eine elegante Methode??

Gruß

Christopher
CC84 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.02.2006, 11:00  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard Re: Timestamp 0:00Uhr aller Tage in einem bestimmten Bereich

Zitat:
Zitat von CC84
Einfacher wäre es den ersten Tag zu berechnen und dann immer 86400 darauf zu rechnen. Das kolidiert aber mit der Zeitumstellung :/
Es gibt nur 2 pro Jahr, die kannst du locker abfangen.
Zergling-new ist offline  
Alt 07.02.2006, 12:55  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

so in etwa?
PHP-Code:
        while ($timestamp $endtime){
            if (!isset(
$oncallarray[$timestamp])) $oncallarray[$timestamp] = "Nicht vergeben";
            
$timestamp += 86400;
            
$hour date('H',$timestamp);
            if (
$hour == 23$timestamp += 3600;
            elseif (
$hour == 1$timestamp -= 3600;
        } 
bisschen Hintergrund: Im Oncallarray stehen den Timestampszugeordnet Namen drin.

Und die bislang nicht belegten Tage sollen als nicht vergeben dennoch im Kalender stehen.
CC84 ist offline  
Alt 07.02.2006, 12:59  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard Re: Timestamp 0:00Uhr aller Tage in einem bestimmten Bereich

Zitat:
Zitat von CC84
Einfacher wäre es den ersten Tag zu berechnen und dann immer 86400 darauf zu rechnen. Das kolidiert aber mit der Zeitumstellung :/
Um den Timestamp zu berechnen, der genau einen Tag in der Zukunft liegt, kannst du strtotime() verwenden. Dann erübrigt sich auch das Problem mit der Zeitumstellung.
xabbuh ist offline  
Alt 07.02.2006, 12:59  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Probiers einfach aus :wink:
Ich hätte zwar eine for-Schleife verwendet, aber das ist Geschmackssache.

Edit @xabbuh: Ist der Rechenaufwand hierbei nicht viel höher? (aber wahrscheinlich immernoch unbedeutend gering)
Zergling-new ist offline  
Alt 07.02.2006, 13:03  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard Re: Timestamp 0:00Uhr aller Tage in einem bestimmten Bereich

Zitat:
Zitat von xabbuh
Zitat:
Zitat von CC84
Einfacher wäre es den ersten Tag zu berechnen und dann immer 86400 darauf zu rechnen. Das kolidiert aber mit der Zeitumstellung :/
Um den Timestamp zu berechnen, der genau einen Tag in der Zukunft liegt, kannst du strtotime() verwenden. Dann erübrigt sich auch das Problem mit der Zeitumstellung.
Mach mal nen Vorschlag wie du das meinst. Wenn ich als Parameter dafür dann 3 Date() machen muss, wird das bei der Berechnung von einem Jahr (356 Tagen) recht schnell recht aufwendig (Rechenlastig).

(Meine Lösung geht schon, will halt nur wissen, ob sie so sinnvoll ist, oder ob ihr es anders machen würdet.

Mit der For schleife hast du recht, kann man sich streiten. Macht in dem Fall hier glaube keinen Unterschied.
CC84 ist offline  
Alt 07.02.2006, 13:07  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

xabbuh hat schon Recht und übrigens auch aufs Manual verlinkt, wo du unzählige Beispiele findest!
Zergling-new ist offline  
Alt 07.02.2006, 13:22  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Zergling
Edit @xabbuh: Ist der Rechenaufwand hierbei nicht viel höher? (aber wahrscheinlich immernoch unbedeutend gering)
Mag sein, dass es im Einzelfall ein klein wenig rechenaufwendiger ist. Dafür fällt aber wiederum die if-Abfrage weg, die ansonsten bei jedem Schleifendurchlauf vorgenommen werden müsste. Der Unterschied dürfte wohl nicht spürbar sein.
xabbuh ist offline  
Alt 07.02.2006, 13:29  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Zergling
xabbuh hat schon Recht und übrigens auch aufs Manual verlinkt, wo du unzählige Beispiele findest!
Ausserdem ist der dabei entstehende Code extrem selbsterkärend:

PHP-Code:
<?php
        
while ($timestamp $endtime)
        {
            if (
false === isset($oncallarray[$timestamp]))
                
$oncallarray[$timestamp] = "Nicht vergeben";

            
$timestamp += strtotime('+1 day'$timestamp);
        }
?>
Guradia ist offline  
Alt 07.02.2006, 13:33  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Guradia
PHP-Code:
$timestamp += strtotime('+1 day'$timestamp); 
Sollte dann aber eher so aussehen:
PHP-Code:
$timestamp strtotime('+1 day'$timestamp); 
Oder habe gerade einen Denkfehler?

EDIT: Was macht das Forum mit meinem schönen Fragezeichen?!
xabbuh ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
htmlentities() nur auf bestimmten Bereich rocco PHP Tipps 2006 14 16.07.2006 20:23
[Erledigt] Anzahl Tage zwischen 2 Unix Timestamps PHP Tipps 2006 8 11.05.2006 09:00
timestamp in mysql Aris Sung PHP-Fortgeschrittene 9 22.11.2005 17:54
timestamp -> x Tage zurück Unbekanntes_Pferd PHP Tipps 2005-2 1 11.10.2005 14:23
Tage zählen, ab einem bestimmten Datum PHP Tipps 2005-2 5 26.08.2005 00:27
Timestamp auf Tage runden DerDesian PHP Tipps 2005-2 7 17.06.2005 13:35
Tage seit Timestamp Datenbanken 7 08.05.2005 14:36
timestamp PHP-Fortgeschrittene 4 26.08.2004 19:29
Scrollen in einem bestimmten Bereich der Tabelle HTML, Usability und Barrierefreiheit 2 20.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zeitumstellung php, timestamp auf tag rechnen, php timestamp 0 uhr, php timestamp in bereich, timestamp(end_time,, timestamp aufrunden auf 0:00 uhr, timestamps aller tage im jahr, php timestamp one day zeitumstellung, php berechnung tage mit zeitumstellung, timestamp bestimmter tag

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:45 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.