php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Thema geschlossen
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-04-2011, 17:02
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard Tage ermitteln

Hallo zusammen,

Kann man gewisse Wochentage in einem bestimmten Zeitraum errechnen?

Wenn ich zum Beispiel alle Mittwoch als Datumanzeige im Zeitraum von August 2010 bis Juni 2011 ermitteln und darstellen möchte.

Stehe da auf dem Schlach, kann mir jemand einen Tip geben. Danke

Geändert von sepp (19-04-2011 um 17:05 Uhr)
  #2 (permalink)  
Alt 19-04-2011, 17:07
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

strtotime ist sehr mächtig, probier mal z. B.

PHP-Code:
echo date('Y-m-d'strtotime('2011-04-11 next monday')); 
das liefert dir z. B. den nächstmöglichen Montag nach dem 11. April (also gestern).

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
  #3 (permalink)  
Alt 19-04-2011, 17:08
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Du ermittelst den ersten Mittwoch in August 2010 und addierst dann immer 7 Tage, bis du das Ende von Juni 2011 erreicht hast.
  #4 (permalink)  
Alt 19-04-2011, 17:16
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

AmicaNoctis:
Spannende funktion ich lese mir einmal das Manuel durch.

h3ll:
Klingt logisch, wird aber zu Problem bei z.Bsp. Schaltjahren.
  #5 (permalink)  
Alt 19-04-2011, 17:23
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von sepp Beitrag anzeigen
Klingt logisch, wird aber zu Problem bei z.Bsp. Schaltjahren.
Öhm, wieso? In Schaltjahren hat die Woche trotzdem 7 Tage.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
  #6 (permalink)  
Alt 19-04-2011, 17:27
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sepp Beitrag anzeigen
Klingt logisch, wird aber zu Problem bei z.Bsp. Schaltjahren.
Welches Problem? Eine Woche hat immer 7 Tage, auch in Schaltjahren.
  #7 (permalink)  
Alt 19-04-2011, 17:27
sepp
 Registrierter Benutzer
Links : Onlinestatus : sepp ist offline
Registriert seit: Aug 2007
Beiträge: 296
sepp kann nur auf Besserung hoffen
Standard

Ja, aber der Februar hat nicht immer 29 Tage!

Sprich wenn ich immer mit 7 Addiere muss ich je monat nur addieren wenn < 30 oder 31 im Feb 29 und im Schaltjahr 28 nur wie kann ich das Schaltjahr ermitteln?
  #8 (permalink)  
Alt 19-04-2011, 17:28
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von sepp Beitrag anzeigen
Ja, aber der Februar hat nicht immer 29 Tage!

Sprich wenn ich immer mit 7 Addiere muss ich je monat nur addieren wenn < 30 oder 31 im Feb 29 und im Schaltjahr 28 nur wie kann ich das Schaltjahr ermitteln?
Du musst gar nichts. Das macht doch PHP.

PHP-Code:
$date = new DateTime('2011-02-25');
$date->modify('+1 week');
echo 
$date->format('Y-m-d');
// 2011-03-04

$date = new DateTime('2012-02-25');
$date->modify('+1 week');
echo 
$date->format('Y-m-d');
// 2012-03-03 

Geändert von h3ll (19-04-2011 um 17:31 Uhr)
  #9 (permalink)  
Alt 19-04-2011, 17:29
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Du hast dich offenbar noch gar nicht mit Datumsberechnung beschäftigt. Wenn du 7 Tage addierst, machst du das natürlich nicht auf dem menschenlesbaren Datum sondern auf dem Unix-Timestamp, indem du ihn mit 7*24*60*60 addierst. Oder du nutzt wieder strtotime und übergibst "+7 day".
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
  #10 (permalink)  
Alt 19-04-2011, 17:37
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Du hast dich offenbar noch gar nicht mit Datumsberechnung beschäftigt. Wenn du 7 Tage addierst, machst du das natürlich nicht auf dem menschenlesbaren Datum sondern auf dem Unix-Timestamp, indem du ihn mit 7*24*60*60 addierst.
_Dann_ hast du aber ein Problem, weil nicht jeder Tag 24 Stunden hat.
  #11 (permalink)  
Alt 19-04-2011, 17:48
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
_Dann_ hast du aber ein Problem, weil nicht jeder Tag 24 Stunden hat.
Jetzt geht das wieder los. Die Schaltsekunde wird so eingefügt, als wäre sie nicht eingefügt worden. Die Schaltsekunde hat den gleichen UNIX-Timestamp wie die Sekunde davor. Die Vergangenheit wird dadurch geringfügig verändert, aber nicht die Zukunft. UNIX-Timestamps arbeiten immer mit einem Tag von 86400 Sekunden.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
  #12 (permalink)  
Alt 19-04-2011, 17:49
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Jetzt geht das wieder los. Die Schaltsekunde wird so eingefügt, als wäre sie nicht eingefügt worden. Die Schaltsekunde hat den gleichen UNIX-Timestamp wie die Sekunde davor. Die Vergangenheit wird dadurch geringfügig verändert, aber nicht die Zukunft.
Das Problem ist nicht die Schaltsekunde sondern die Winter-/Sommerzeit.

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
UNIX-Timestamps arbeiten immer mit einem Tag von 86400 Sekunden.
Das Problem ist auch nicht der UNIX-Timestamp, sondern der Zeitpunkt, wo du den Timestamp in ein lesbares Datum konvertierst. Hier wird der Fehler dann ersichtlich.

Geändert von h3ll (19-04-2011 um 17:51 Uhr)
  #13 (permalink)  
Alt 19-04-2011, 17:51
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von h3ll Beitrag anzeigen
Das Problem ist nicht die Schaltsekunde sondern das Schaltjahr.
Auch da hat jeder Tag 86400 Sekunden, also 24 Stunden. Ich versteh nicht, was du willst. Gerade eben schriebst du, dass nicht jeder Tag 24 Stunden hat. Jetzt redest du von Schaltjahren. Bitte um Aufklärung.

Zitat:
Zitat von h3ll Beitrag anzeigen
Hier wird der Fehler dann ersichtlich.
Dann zeig mir das mal bitte.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
  #14 (permalink)  
Alt 19-04-2011, 17:55
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.593
h3ll befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
date_default_timezone_set('Europe/Vienna');

$date  strtotime('2011-10-24');
$date += 86400// add 7 days

echo date('Y-m-d'$date);
// 2011-10-30 
24. Oktober + 7 Tage = 30. Oktober ???

PHP-Code:
date_default_timezone_set('Europe/Vienna');

$date = new DateTime('2011-10-24');
$date->modify('+7 days');

echo 
$date->format('Y-m-d');
// 2011-10-31 
  #15 (permalink)  
Alt 19-04-2011, 18:06
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Dieses Problem hat weder mit Schaltsekunden noch mit Schaltjahren zu tun, sondern ausschließlich mit dem zwischenzeitlichen Verlust der Zeitzoneninformation. Du hast mich überzeugt, dass es sicherer ist, mit "+7 days" zu arbeiten als mit Addition von Sekunden, aber deine Begründung hat mir zuerst nicht gefallen, weil sie vollkommen absurd klang (/war).

Wenn man dein Beispiel mit "Y-m-d Z" formatiert, sieht man das UTC Offset, das PHP zugrunde legt.

Ein Tag hat aber dennoch 24 Stunden, was ich mit enormer Beruhigung als bestätigt sehe
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Thema geschlossen

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
die letzten geb.tage ermitteln s.roettger PHP Developer Forum 7 29-03-2005 19:28
Umrechnen in Tage hasch PHP Developer Forum 12 06-11-2004 07:30
die nächsten 90 Tage Citral666 PHP Developer Forum 3 01-03-2004 18:06
verbleibende tage ermitteln s.roettger PHP Developer Forum 1 13-12-2003 19:24
Tage ermitteln manyhits PHP Developer Forum 4 28-08-2002 09:05

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

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