Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem!! Jak wypisać kolejne dni ??? Pomocy
djluzak
post 12.03.2004, 01:13:10
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Problem wygląda następujaco:
Mamy dwie daty, np. 29-03-2004 i 2-04-2004
Jak przedstawic daty w postaci ciagu typu: 29.03, 30.03 , 31.03, 1.04, 2.04 questionmark.gifquestionmark.gif

Czy zna ktoś jakiś sposób?questionmark.gifsmile.gif
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Foxx
post 12.03.2004, 01:20:57
Post #2





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


[php:1:93c766bfa4]<?php
$data1 = "22-02-2004";
$data2 = "44-03-2004";
$daty = array($data1, $data2);
foreach($daty as $dat){
$tab = explode("-", $dat);
echo $tab[0].".".$tab[1].", ";
}
?>[/php:1:93c766bfa4]
biggrin.gif
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 01:33:51
Post #3





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dzięki wielkie za kod, ale problem polega na tym jak to zrobić, zeby uwzglednic ilosc dni w miesiacu? Masz jakis pomysl?

Dziekuje z gory.smile.gif
Go to the top of the page
+Quote Post
rzseattle
post 12.03.2004, 01:41:50
Post #4





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


[php:1:c5f7d7029c]<?php
$months_day = array( 1 => 30, 2=> 29, 3=> 31, 4=> 30, 5=> 31, 6=> 30); //itd

$date1 = "20-03-2004";
$date2 = "2-04-2004";

$tmp = explode( "-", $date1);
$start_day = $tmp[0];
$start_month = $tmp[1];

$tmp = explode( "-", $date2);
$stop_day = $tmp[0];
$stop_month = $tmp[1];


for($i=$start_month;$i<=$stop_month;$i++){

for($x=$start_day;$x<=$months_day[(int) $i];$x++){

if($x == $stop_day && $i == $stop_month){ break;}
print $x.".".$i."<br>";

}
$start_day = 1;
}
?>[/php:1:c5f7d7029c]

Cos takiego na szybko


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 01:49:08
Post #5





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Super!!!!

Działa tak jak trzeba. Chodzilo mi nawet o to zeby ostatniego dnia nie bral pod uwage i dziala idealnie. Wielkie dzieki wszystkim za pomoc
Go to the top of the page
+Quote Post
Foxx
post 12.03.2004, 01:54:52
Post #6





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Mogłeś sam sobie pomóc - w manualu w rodziale o datach jest funkcja calculateVacationDays()
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 01:58:24
Post #7





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Gdybym wczesniej wpadl na ten pomysl to pewnie bym zerknal do manuala, ale Ty wiedziales ze ten kod tam jest a ja nie. Mysli sie po fakcie:)
Go to the top of the page
+Quote Post
Foxx
post 12.03.2004, 02:01:01
Post #8





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Przecież gdybym wiedział to bym Ci napisał od razu - znalazłem niechcący podczas myślenia jak to zrobić... smile.gif
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 02:04:51
Post #9





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Najwazniejsze ze juz mam ten kod bo mialem rozne pomysly ale co chwile pojawialy sie jakies problemy z ta ilosci dni w poszczegolnych miesiacach:)
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 02:11:23
Post #10





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


A masz moze pomysl jak umiescic zwracane dane w tablicy zamiast wypisywac na ekranie?
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 02:12:17
Post #11





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Albo w bazie MySQl
Go to the top of the page
+Quote Post
Foxx
post 12.03.2004, 02:16:04
Post #12





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


jeżeli chodzi o przykład z manuala to do tablicy:
[php:1:2ef830ee6c]<?php
$tab = calculateVacationDays();
print_r($tab);

function calculateVacationDays()
{
$date_from = '24.12.2003';
$date_to = '06.01.2004';
$date_from_parts = explode('.', $date_from);
$date_to_parts = explode('.', $date_to);

// Calculating the UNIX Timestamp for both dates
$ts_from = mktime(0, 0, 0, $date_from_parts[1], $date_from_parts[0], $date_from_parts[2]);
$ts_to = mktime(0, 0, 0, $date_to_parts[1], $date_to_parts[0], $date_to_parts[2]);

// 86400 = seconds per day
for ($x = $ts_from; $x <= $ts_to; $x += 86400)
{
$vacation_days[] = date('d.m', $x);
}

return $vacation_days;
}
?>[/php:1:2ef830ee6c]
A jezeli chodzi o mysql to zalezy w jaki sposób, do jakiej tabeli...

Byl UPDATE - mały bezsens się wkradł
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 02:24:40
Post #13





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Bardzo fajny skrypcik.
Nie chce Ci juz zawracac glowy, ale jak sie dobrze znasz to mozesz mi pomoc.

Np tabela o nazwie kalendarz i komorka danych o nazwie dni. Reszte komorek pomijam. Dzieki.
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 02:26:26
Post #14





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


I dodanie zwroconych wartosci w postaci 29.04, 30.04, 31.04 itd

Mysle ze to jest proste ale ja nie wpadne na to:(
Go to the top of the page
+Quote Post
Foxx
post 12.03.2004, 02:31:58
Post #15





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


no więc zakładjąc że mamy już tablicę $tab w której są daty po kolei w formacie dd.mm
zakładając że tabela to "kalendarz" i ma pola dni i miesiące:
[php:1:1143dd0c68]<?
//zakładając że jest połączenie z bazą
foreach($tab as $data){
$frag = explode(".", $data);
$sql = "INSERT INTO kalendarz (dni, miesiace) VALUES ('".$frag[0]."', '".$frag[1]."')";
mysql_query($sql);
?>[/php:1:1143dd0c68]
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 02:45:17
Post #16





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dobra wszystko oki ale nie o to mi chodzilo.
Bo tutaj wpisuje osobno do komorek, a chcialbym zeby dane z tej tablicy $tab zostaly zapisane do jednej komorki tabeli w postaci (29.03, 30.03, 31.03 itd.) Da rade??
Go to the top of the page
+Quote Post
Foxx
post 12.03.2004, 02:51:30
Post #17





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Czyli chcesz taki długi wpis do jednej komórki? Jasne że sie da i myślę że sam byś wpadł na to...
[php:1:642faa1ead]<?
//mamy $tab po wykonaniu funkcji z manuala...
foreach($tab as $data){
$wpis .= $data.", ";
}
echo $wpis;
?>[/php:1:642faa1ead]
No i $wpis to jest to co musisz wpisać do bazy, a więc :
[php:1:642faa1ead]<?
$sql = "INSERT INTO kalendarz (dni) VALUES ('".$wpis."')";
mysql_query($sql);
?>[/php:1:642faa1ead]

Jedyna wada to to że na końcu tego wpisu będzie przecinek...
Go to the top of the page
+Quote Post
spenalzo
post 12.03.2004, 02:52:47
Post #18





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


A nie prościej:
[php:1:17651c13e7]<?php
$sql = "INSERT INTO kalendarz (dni) VALUES ('".@implode(", ",$tab)."')";
mysql_query($sql);
?>[/php:1:17651c13e7]


--------------------

Go to the top of the page
+Quote Post
Foxx
post 12.03.2004, 02:54:26
Post #19





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


:-k prościej
Go to the top of the page
+Quote Post
djluzak
post 12.03.2004, 02:58:49
Post #20





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 12.03.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


No pieknie to wyglada. Zawsze sie przydadza dwa przyklady, wiedzy nigdy za wiele.
Nie szkodzi ze wystepuje przecinek na koncu, glownie chodzilo mi o takie dane ze bedzie maksymalnie 6, 7 pozycji.

dziekuje za pomoc:)
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 20:00