webForumDet fria alternativet

Array.

PHP

10 svar · 542 visningar · startad av apaaa

Medlem sedan nov. 200559 inlägg
Frågan#1

Om man lägger en array som er ut som följande

$dagar = array("Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday");

om jag vill skapa en while som tar reda vilken dag det är typ

$d = "1";
while (date("l") != $dagar($d)) {
$d++;
}

Hur skall jag få $dagar($d) att vara en sträng?

Medlem sedan mars 20007 896 inlägg
#2

Hm. Vet inte riktigt vad du vill åstadkomma? 'date("l")' ger ju dagen i sträng-format?

Din array innehåller för övrigt bara ett element. Elementet "Monday, Tuesday, Wednesday, osv".

$dagar = array("Monday", "Tuesday", "Wednesday", osv);

Och eftersom att $d ska vara en räknare, bör den vara av typen integer - för tillfället är den en sträng (eftersom att du deklarerar den med citationstecken).

$d = 1;
Medlem sedan nov. 200559 inlägg
#3

Hej.

Jag håller på att bygga ett löne/tidsrappoteringssystem till våra firma. Håller på och bygger kalendern till det men märker att åren har tagit bort mitt minne, känns som man glömt allt :)

I.a.f. Det jag försöker göra är att få $d till den dag det är i veckan.

Måndag = 1
Tisdag = 2
Onsdag 3 o.s.v.

Känner att mitt system som jag håller på och klurar på inte håller.

<?php 
echo date("l") . "<br><br>";

$dagar = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
$dag = date("l");

$d = 1;

while ($dag != ($dagar[1]) {
$d++;
}

$a = date("d");
$week = date("W");

while ($a <= 31) {

	if ($a > 7) {
		$a = $a - 7;
		$week = date("W") - 1;

	}

	elseif ($a < 7)  {

			if ($dag == "Monday") {
			$week = $week -1;
			
			
			}
			
	$a = $a -1;
	
		if ($a == 1) {
		break;
		}
	}

}

echo "week: " . $week;
echo "day; " . $a; 

?>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><?php echo date("F") . "<br>"; ?></td>
  </tr>
  <tr>
    <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
    <?php 
	$weekp = 7;
	while ($a <=31) {
	 
     echo "<tr>";
     echo "<td>" . $week . "</td>";
     echo "<td>" . $a . "</td>";
     echo "<td>&nbsp;</td>";
     echo "</tr>";
	 
	 	if ($a == $weekp) {
		$weekp = $weekp + 7;
		$week++;
		}
		
	 $a++;
	}
	?>
    </table></td>
  </tr>
</table>
Medlem sedan juni 20006 031 inlägg
#4

Missförstår nog dig angående vad du vill egentligen.
Men för att få fram vilken dag i veckan det är så kan du köra:

$dagar = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
$dag = date("l");

for ($d = 0; $d <= 7; $d++) {
	if ($dag == $dagar[$d]) {
		$dagiveckan = $d + 1;
	}
}
echo "dag i veckan: ".$dagiveckan . "<br><br>";
Medlem sedan mars 20041 505 inlägg
#5

Eh...varför inte använda date()-funktionen till detta istället?! :P

$dagiveckan = (int) date('N');
Medlem sedan juni 20006 031 inlägg
#6

Troxy skrev:

Eh...varför inte använda date()-funktionen till detta istället?! :P

$dagiveckan = (int) date('N');

Japp, funkar bra... (Om man har PHP 5.1)

Medlem sedan nov. 200559 inlägg
#7

$dagiveckan = (int) date('N'); den gick fint den :)

Men om vill veta vilken vecka det var ex. 21 April, hur gör man det på ett smidigt sätt?
Finns det något sätt man kan gå "back in time" med hjälp utav php's date funktion?

Medlem sedan mars 20041 505 inlägg
#8

Pedda skrev:

Japp, funkar bra... (Om man har PHP 5.1)

Det har man :)
Annars bör man uppdatera servern eftersom 5.1 är stenålder och 4.x är utdött.

apaaa skrev:

Men om vill veta vilken vecka det var ex. 21 April, hur gör man det på ett smidigt sätt?
Finns det något sätt man kan gå "back in time" med hjälp utav php's date funktion?

Ja, date-funktionens andra argument är ett timestamp som används.
Datumet 21/4 blir timestamp 1208732400.
Sätt ihop allting såhär:

$vecka = (int) date('W', 1208732400);
Medlem sedan nov. 200559 inlägg
#9

Förstod inte riktigt hur jag skulle göra om "Datumet 21/4 blir timestamp 1208732400" Men fann andra metoder på:
http://no.php.net/manual/en/function.mktime.php

Tack för hjälpen!

Medlem sedan apr. 2006409 inlägg
#10

Var får du datumen ifrån tex 21/4. Och vilken form har det?

Medlem sedan mars 20041 505 inlägg
268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)