Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Wieder Datum [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Wieder Datum


 
ediel
13-09-2001, 11:50 
 
Hallo,

ich habe:

$heute=date("w");

$DATUM[$i]=date("Y-m-d",strtotime("+$heute day"));

und beim Speichern:

Warning: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Bei der Konvertierung eines char-Datentyps in einen smalldatetime-Datentyp liegt der smalldatetime-Wert außerhalb des gültigen Bereichs., SQL state 22008 in SQLExecDirect in d:\**\**\**\**\1.inc.php on line 27

Warning: SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Bei der Konvertierung eines char-Datentyps in einen smalldatetime-Datentyp liegt der smalldatetime-Wert außerhalb des gültigen Bereichs., SQL state 22008 in SQLExecDirect in d:\**\**\**\**\1.inc.php on line 32

Was soll das bedeutet?
Wer kann mir helfen?

Gruß







[Editiert von ediel am 13-09-2001 um 11:53]

 
Berni
13-09-2001, 21:33 
 
hmmm falsches Format für DATE im SQL-Server.... (glaube ich )

 
Titus
17-09-2001, 18:21 
 
Welches Format hat denn smalldatetime?
Und was für ein Datum soll da rein?

date("Y-m-d",strtotime("+$heute day")); sieht mir sehr seltsam aus ... laß die $DATUM[$i] nochmal ausgeben, bevor du es speicherst, vermutlich kannst du dir deine Frage dann schon selbst beantworten.

 
ediel
18-09-2001, 08:14 
 
Hallo,

ich versuche mal genaue erklären:

mit aktuelle Kalenderwochenummer erzeuge ich ein select-auswahlfeld von 1 Kal.woche akt.Jahr bis z.B. 10 Kal.woche nächst.Jahr. Benutzer soll eine Möglichkeit haben,nach Kal.woche (erscheinen alle 7 Tage[montag-sonntag], als Datum in Deutsche Format- dd.mm.yyyy) wählen, und alte Einträge bearbeiten, oder neu erstellen und in SQL Server 7 DB speichern:

Datum Format habe ich geändert,jetzt DATETIME.
(YYYY-mm-dd 00:00:00.000). Speichern kann ich jetzt ohne Problem, SQL wandelt selbst Deutsche Format in Englische.

Aber zurück aus Eng. -> Deutsch. habe ich wirklich auch Probleme gehabt,aber gestern habe ich wieder eine Lösung
gefunden.

Source Code:
nach Kal.woche:

$wochenummer=strftime("%W");

for($i=1;$i<=60;$i++)
{
if($wochenummer>($i))
{
$heute=date("w");
switch($heute)
{
case 1:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen);break;
case 2:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+1;break;
case 3:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+2;break;
case 4:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+3;break;
case 5:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+4;break;
case 6:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+5;break;
case 0:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+6;break;
} // end switch
for($x=0;$x<7;$x++)
{
$date1[$x]=date("d.m.Y",strtotime("-$heute1 day"));
$heute1--;
} // end for
$zusammen=array_merge($date1[0],$date1[6]);
$ha .=implode("-",$zusammen);
$ha .=",";
} // end if
if($wochenummer==$i)
{
$heute=date("w");
switch($heute)
{
case 1:$zwischen=0;$heute1=(7*$zwischen);break;
case 2:$zwischen=0;$heute1=(7*$zwischen)-1;break;
case 3:$zwischen=0;$heute1=(7*$zwischen)-2;break;
case 4:$zwischen=0;$heute1=(7*$zwischen)-3;break;
case 5:$zwischen=0;$heute1=(7*$zwischen)-4;break;
case 6:$zwischen=0;$heute1=(7*$zwischen)-5;break;
case 0:$zwischen=0;$heute1=(7*$zwischen)-6;break;
} // end switch
for($z=0;$z<7;$z++)
{
$date2[$z]=date("d.m.Y",strtotime("+$heute1 day"));
$heute1++;
} // end for
$zu=array_merge($date2[0],$date2[6]);
$han .=implode("-",$zu);
$han .=",";
} // end if
if($wochenummer<$i)
{
$heute=date("w");
switch($heute)
{
case 1:$zwischen=$i-$wochenummer;$heute1=(7*$zwischen);break;
case 2:$zwischen=$i-$wochenummer;$heute1=(7*$zwischen)-1;break;
case 3:$zwischen=$i-$wochenummer;$heute1=(7*$zwischen)-2;break;
case 4:$zwischen=$i-$wochenummer;$heute1=(7*$zwischen)-3;break;
case 5:$zwischen=$i-$wochenummer;$heute1=(7*$zwischen)-4;break;
case 6:$zwischen=$i-$wochenummer;$heute1=(7*$zwischen)-5;break;
case 0:$zwischen=$i-$wochenummer;$heute1=(7*$zwischen)-6;break;
} // end switch
for($y=0;$y<7;$y++)
{
$date3[$y]=date("d.m.Y",strtotime("+$heute1 day"));
$heute1++;
} // end for
$zug=array_merge($date3[0],$date3[6]);
$hana .=implode("-",$zug);
$hana .=",";
} // end if
} // end for
$h=$ha.$han.$hana;
$datum=explode(",",$h);
array_pop($datum);
for($g=0;$g<count($datum);$g++)
{
$c=$g+1;
if($g==0)$selopt.="<option value='$c' selected> $datum[$g]";
else
$selopt.="<option value='$c'> $datum[$g]";
}

Source Code:
SQL-Select Eng -> Deutsche Format:

$m=monat zwischen 01-12; und in for-schleife:

$sql="select CONVERT(varchar(10),Datum,104) as Datum,Schicht,Name FROM TAbelle WHERE CONVERT(varchar(10),Datum,104) LIKE '%.$m.$datum' ORDER BY Datum,Schicht,Name";
$result=odbc_exec($db,$sql);

Danke.

Gruß

 
Titus
20-09-2001, 21:52 
 
switch($heute)
{
case 1:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen);break;
case 2:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+1;break;
case 3:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+2;break;
case 4:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+3;break;
case 5:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+4;break;
case 6:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+5;break;
case 0:$zwischen=$wochenummer-($i);$heute1=(7*$zwischen)+6;break;
} // end switch

uargh ... besser ist das:

$heute1=(7*($wochenummer-$i))+(($heute+6)%7);

 
ediel
21-09-2001, 07:57 
 
Hallo,

vielen Dank, Herr Titus!

Wirklich sehr hilfsreich.

Klasse!

Gruß

- -

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