![]() |
![]() |
![]()
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 ![]() ![]() Czy zna ktoś jakiś sposób? ![]() ![]() |
|
|
![]() |
![]()
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] ![]() |
|
|
![]()
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. ![]() |
|
|
![]()
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."
|
|
|
![]()
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 |
|
|
![]()
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()
|
|
|
![]()
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:)
|
|
|
![]()
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ć...
![]() |
|
|
![]()
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:)
|
|
|
![]()
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?
|
|
|
![]()
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
|
|
|
![]()
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ł |
|
|
![]()
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. |
|
|
![]()
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:( |
|
|
![]()
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] |
|
|
![]()
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?? |
|
|
![]()
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... |
|
|
![]()
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] -------------------- |
|
|
![]()
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
|
|
|
![]()
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:) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 20:00 |