Hej, håller på med ett litet PHP projekt och har fastnat. <b> $sDate = $row['paminnelseDatum'] - $row['PaminnelseDagar'];</b> Jag försöker få ut dagen för just det givna datumet.. Hur ska jag göra för att subtrahera hela datumet då? Jag antar att $row är hämtad ur en databas. Är det MySQL? I så fall sköter du enklast datumberäkningarna i SQL-satsen: Jaha, det visste jag faktiskt inte gick, så då kan man alltså deklarera en variabel (sDatum) direkt i SQL satsen? Vill inte kalla det "deklarera en variabel", men ja, man kan lägga uttryck i fältlistan efter SELECT och ge uttrycken namn. nu använder jag mig utav en SELECT * from Tabell.. kan man kombinera SELECT * med (paminnelseDatum - INTERVAL PaminnelseDagar DAY) AS sDatum på något sätt? Det känns rätt drygt att behöva använda en SELECT på varenda kolumn när det egentligen bara är två kolumner som ska formateras i sDatum? Tack för all din hjälp! Det skall vara <b>date('l', ...)</b> (med litet L), inte date('1', ...) (med en etta). Tack så mycket! Nu får jag ut veckodagen i varje fall, (ALT="Påminnelse Tuesday den), så nu verkar problemet ligga i: list($month, $day, $year) = split('[/.-]', $sDatum); Mktime-krångel!
$rem_img = "../img/rem.gif";
$sDate = $row['paminnelseDatum'] - $row['PaminnelseDagar'];
list($month, $day, $year) = split('[/.-]', $sDate);
$alt_txt = "Påminnelse " . date("1", mktime(0, 0, 0, $month, $day, $year)) . " den " . $day . " " . $month . " " . $year;
$row['paminnelseDatum'] och $row['PaminnelseDagar'] innehåller datum av typen 06-06-2006 samt 05-05-2005
Felet jag får är:
Warning: mktime() expects parameter 4 to be long, string given in test.php
Vad är problemet?
Tacksam för svarSv: Mktime-krångel!
PHP förstår inte att termerna är ett datum utan försöker göra om dem till tal, varvid den bara tar första delen av datumen (dvs dagen) och subtraherar dessa.
<b>date("1", mktime(0, 0, 0, $month, $day, $year))</b>
mktime() verkar användas korrekt, men vad försöker du göra med date()? Det där borde bara ge en etta.Sv:Mktime-krångel!
Sv: Mktime-krångel!
<b>SELECT ..., (paminnelseDatum - INTERVAL PaminnelseDagar DAY) AS sDatum, ...</b>Sv:Mktime-krångel!
Sv: Mktime-krångel!
Sv:Mktime-krångel!
Sv:Mktime-krångel!
Jag förespråkar att man ska försöka lära sig själv och inte hela tiden be andra om kod. Dessvärre förstår jag inte vad jag gör för fel :/
Min kod ser ut såhär:
If ($paminnelseDatum != "") {
$rem_img = "../img/rem.gif";
$sDate = $sDatum;
list($month, $day, $year) = split('[/.-]', $sDatum);
$alt_txt = "Påminnelse " . date("1", mktime(0, 0, 0, intval($month), intval($day), intval($year))) . " den " . $day . " " . $month . " " . $year;
}
Else {
$rem_img = "../img/norem.gif";
$alt_txt = "Skapa påminnelse...";
}
---------------------------------------------------------------------------------------------------------------
Och den skriver ut så mycket som:
ALT="Påminnelse 1 den " (ALT=$alt_txt)
---------------------------------------------------------------------------------------------------------------
Koden jag håller på med är från början skriven i ASP och ser då ut såhär:
rem_img = "../img/rem.gif"
sDate = RS(paminnelseDatum) - RS("PaminnelseDagar")
alt_txt = "Påminnelse " & WeekDayName(WeekDay(sDate)) & " den " & Day(sDate) & " " & MonthName(Month(sDate)) & " " & Year(sDate)
Else
rem_img = "../img/norem.gif"
alt_txt = "Skapa påminnelse..."
--------------------------------------------------------------------------
Hurvida detta gör en klokare vet jag inte, men det ger ändå ett hum om vad koden är tilltänkt haha ( i varje fall för mig)Sv: Mktime-krångel!
Sv:Mktime-krångel!
I och med att sql:en skapar $sDatum genom subtrahering, tar den då möjligtvis bort tecken som "/" och "-", kan det då påverka list($month, $day, $year) ?