SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.07.2004, 10:27:12
DanielEXQ2 DanielEXQ2 ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 29
Eigene Datumsfunktion geht auf dem Server nicht

Hallo,

ich habe hier etwas zum Zähne ausbeißen!
Ich habe mir eine eigene Funktion geschrieben, die mir bei übergabe der gewünschten Kalenderwoche, dass Datum von dem Montag dieser Kalenderwoche zurück gibt. Diese Funktion funktioniert einwandfrei bei mir Local! Leider aber nicht auf dem Server online! Er gibt ein völlig falsches Datum an! Ich begreife das nicht.

Ich sende hier mal meine Funktion mit nem Beispiel. Dann könnt ihr mal knobeln:
FUNKTION:
PHP-Code:
function KW2Weekday($KW$Format)
{
// Wann war der 01.01.? 
$jan1 mktime(1200112001); 

// Wann ist Montag? 
$mon[1] = $jan1 + (date('w'$jan1)) * 24 3600
while (
date('W'$mon[1]) != 1
    
$mon[1] += (24 3600); 

// Hochzählen solange Jahr aktuell ist 
for ($i 1$i <= 52$i++) 
    
$mon[] = $mon[$i] + 24 3600

    return 
date($Format$mon[$KW]);

AUFRUF:
PHP-Code:
$KW 31;
$Wochenbeginncall_user_func("KW2Weekday",$KW'd.m.Y'); 
ERGEBNIS:
bei mir Local: 26.07.2004 -> Richtiges Datum
auf dem Server: 01.08.2005 -> Falsches Datum

Muss man das begreifen?! :-
Bin für jede Hilfe dankbar!
__________________
Greez
DanielEXQ
Mit Zitat antworten
  #2  
Alt 26.07.2004, 10:49:26
Benutzerbild von yozek
yozek yozek ist offline
Junior Member
 
Registriert seit: May 2004
Ort: Köln
Alter: 43
Beiträge: 226
yozek eine Nachricht über ICQ schicken yozek eine Nachricht über MSN schicken
Schau mal ob das hier funktioniert:

PHP-Code:
<?php
function erstekw($jahr) {

$erster mktime(0,0,0,1,1,$jahr);
$wtag date('w',$erster);

if (
$wtag <= 4) :
    
$montag mktime(0,0,0,1,1-($wtag-1),$jahr);
else :
    
$montag mktime(0,0,0,1,1+(7-$wtag+1),$jahr);
endif;
return 
$montag;
}

function 
mzukw($kw,$jahr) {
$erstermontag erstekw($jahr);
$mon_monat date('m',$erstermontag);
$mon_jahr date('Y',$erstermontag);
$mon_tage date('d',$erstermontag);
$tage = ($kw-1)*7;
$mzukw mktime(0,0,0,$mon_monat,$mon_tage+$tage,$mon_jahr);
return 
$mzukw;
}

mzukw(32,2004);
__________________
yozek

King of my castle - 127.0.0.1
Computer befreien das Denken vom Rechnen
Mit Zitat antworten
  #3  
Alt 26.07.2004, 13:04:35
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Re: Eigene Datumsfunktion geht auf dem Server nicht

Zitat:
Original geschrieben von DanielEXQ2
Hallo,

ich habe hier etwas zum Zähne ausbeißen!
Ich habe mir eine eigene Funktion geschrieben, die mir bei übergabe der gewünschten Kalenderwoche, dass Datum von dem Montag dieser Kalenderwoche zurück gibt. Diese Funktion funktioniert einwandfrei bei mir Local! Leider aber nicht auf dem Server online! Er gibt ein völlig falsches Datum an! Ich begreife das nicht.

Ich sende hier mal meine Funktion mit nem Beispiel. Dann könnt ihr mal knobeln:
FUNKTION:
PHP-Code:
function KW2Weekday($KW$Format)
{
// Wann war der 01.01.? 
$jan1 mktime(1200112001); 

// Wann ist Montag? 
$mon[1] = $jan1 + (date('w'$jan1)) * 24 3600
while (
date('W'$mon[1]) != 1
    
$mon[1] += (24 3600); 

// Hochzählen solange Jahr aktuell ist 
for ($i 1$i <= 52$i++) 
    
$mon[] = $mon[$i] + 24 3600

    return 
date($Format$mon[$KW]);

AUFRUF:
PHP-Code:
$KW 31;
$Wochenbeginncall_user_func("KW2Weekday",$KW'd.m.Y'); 
ERGEBNIS:
bei mir Local: 26.07.2004 -> Richtiges Datum
auf dem Server: 01.08.2005 -> Falsches Datum

Muss man das begreifen?! :-
Bin für jede Hilfe dankbar!
Habe mir dein Script jetzt nicht genauer angesehen, aber könnte es sein, dass die Uhr des Servers vielleicht falsch gestellt ist?

Lass dir doch einfach mal mit
PHP-Code:
<?php
    
echo date("d.m.Y");
?>
das aktuelle Datum ausgeben. Wenn das falsch ist, weißt du schon mal, dass die Uhrzeit des Servers falsch ist und dass der Fehler wohl nicht in deinem Script liegt.
Mit Zitat antworten
  #4  
Alt 26.07.2004, 13:08:44
DanielEXQ2 DanielEXQ2 ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 29
Re: Re: Eigene Datumsfunktion geht auf dem Server nicht

Zitat:
Original geschrieben von xabbuh
Habe mir dein Script jetzt nicht genauer angesehen, aber könnte es sein, dass die Uhr des Servers vielleicht falsch gestellt ist?

Lass dir doch einfach mal mit
PHP-Code:
<?php
    
echo date("d.m.Y");
?>
das aktuelle Datum ausgeben. Wenn das falsch ist, weißt du schon mal, dass die Uhrzeit des Servers falsch ist und dass der Fehler wohl nicht in deinem Script liegt.
Habe ich schon getestet. mit date() gibt der server auch das richtige Datum aus. Es muss was anderes sein.
__________________
Greez
DanielEXQ
Mit Zitat antworten
  #5  
Alt 26.07.2004, 13:18:38
DanielEXQ2 DanielEXQ2 ist offline
Anfänger
 
Registriert seit: May 2004
Beiträge: 29
Zitat:
Original geschrieben von yozek
Schau mal ob das hier funktioniert:

PHP-Code:
<?php
function erstekw($jahr) {

$erster mktime(0,0,0,1,1,$jahr);
$wtag date('w',$erster);

if (
$wtag <= 4) :
    
$montag mktime(0,0,0,1,1-($wtag-1),$jahr);
else :
    
$montag mktime(0,0,0,1,1+(7-$wtag+1),$jahr);
endif;
return 
$montag;
}

function 
mzukw($kw,$jahr) {
$erstermontag erstekw($jahr);
$mon_monat date('m',$erstermontag);
$mon_jahr date('Y',$erstermontag);
$mon_tage date('d',$erstermontag);
$tage = ($kw-1)*7;
$mzukw mktime(0,0,0,$mon_monat,$mon_tage+$tage,$mon_jahr);
return 
$mzukw;
}

mzukw(32,2004);
Danke yozek. Es funktioniert so. Ich weiß zwar nicht warum, aber es geht.
__________________
Greez
DanielEXQ
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:03:00 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt