🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
22 messages
22 total messages Started by tusk, donald tusk Fri, 23 May 2014 19:22
jak wygenerować datę
#230424
Author: tusk, donald tusk
Date: Fri, 23 May 2014 19:22
2 lines
918 bytes
jak wygenerować datę trzydziestu jeden dni wstecz począwszy od dziś z 
dowolnym odległym w czasie okresie?
Re: jak wygenerować datę
#230425
Author: Lemat
Date: Sat, 24 May 2014 08:04
14 lines
1364 bytes
tusk, donald tusk wrote:

> jak wygenerować datę trzydziestu jeden dni wstecz począwszy od dziś z
> dowolnym odległym w czasie okresie?

Nie da się obliczyć jednej daty 31 dni wstecz od dziś i jednocześnie od 
dowolnego odległego w czasie okresie (zakresie dat?!). To matematycznie 
niemożliwe.

-- 
Pozdrawiam
Lemat
Zanim zadasz pytanie: proszę o informację, jaka była przyczyna śmierci 
Twojego ostatniego niewolnika.
Re: jak wygenerować datę
#230426
Author: tusk, donald tusk
Date: Sat, 24 May 2014 08:37
12 lines
1412 bytes
W dniu 2014-05-24 10:04, Lemat pisze:
> tusk, donald tusk wrote:
>
>> jak wygenerować datę trzydziestu jeden dni wstecz począwszy od dziś z
>> dowolnym odległym w czasie okresie?
>
> Nie da się obliczyć jednej daty 31 dni wstecz od dziś i jednocześnie od
> dowolnego odległego w czasie okresie (zakresie dat?!). To matematycznie
> niemożliwe.
>

daty 31 dni, odległe o określony czas od dziś... jaśniej się chyba nie da...
Re: jak wygenerować datę
#230427
Author: tusk, donald tusk
Date: Sat, 24 May 2014 08:41
15 lines
1570 bytes
W dniu 2014-05-24 10:37, tusk, donald tusk pisze:
> W dniu 2014-05-24 10:04, Lemat pisze:
>> tusk, donald tusk wrote:
>>
>>> jak wygenerować datę trzydziestu jeden dni wstecz począwszy od dziś z
>>> dowolnym odległym w czasie okresie?
>>
>> Nie da się obliczyć jednej daty 31 dni wstecz od dziś i jednocześnie od
>> dowolnego odległego w czasie okresie (zakresie dat?!). To matematycznie
>> niemożliwe.
>>
>
> daty 31 dni, odległe o określony czas od dziś... jaśniej się chyba nie
> da...
i jeszcze, poddział na dni, poniedziałek, wtorek, środa itd.
Re: jak wygenerować datę
#230428
Author: astro
Date: Sun, 25 May 2014 05:57
33 lines
1760 bytes
tusk, donald tusk wrote:
> jak wygenerować datę trzydziestu jeden dni wstecz począwszy od dziś

Przeciez to w manualu pieknie wyjasnione jest na przykladzie!
www.php.net/manual/en/function.time.php
Ta funkcja zwraca czas unixowy, 
http://pl.wikipedia.org/wiki/Czas_uniksowy
wiec wystarczy do tej wartosci dodac/odjac ilosc sekund - w tym wypadku, 
jakie uplynely w ciagu 31 dni.

$date = time() - (31 * 24 * 60 * 60);

Mozesz tez samemu zadeklarowac date, nie korzystac z aktualnej.
$date = date_format(date_create('2014-05-01'), 'U') - (31 * 24 * 60 * 60);

Potem wyswietlasz np tak
echo $date->format('Y-m-d');

> z dowolnym odległym w czasie okresie? 

Daty 31, 62, 93... dni temu?
Petla for(....)!

> poddział na dni, poniedziałek, wtorek, środa itd. 

$date->format("l") 
lub w skrocie
$date->format("D")
www.php.net/manual/pl/function.date.php
-- 
Pozdrawiam
Radoslaw Ziomber
www.astrofizyka.info
Re: jak wygenerować datę
#230429
Author: tusk, donald tusk
Date: Sun, 25 May 2014 10:16
9 lines
1218 bytes
 > $date = time() - (31 * 24 * 60 * 60);

dzięki, a jeszcze jak zamienić to na datę np. 2014.04.04
potrzebną mi do gmerania w bazie...

czy wystarczy podać time z dziennego zakresu i funkcja sama sobie 
określi dzień?

a jak określić dzień tygodnia?
Re: jak wygenerować datę
#230430
Author: Borys Pogoreło
Date: Mon, 26 May 2014 07:14
14 lines
1285 bytes
Dnia Sun, 25 May 2014 05:57:17 +0000 (UTC), astro napisał(a):

> http://pl.wikipedia.org/wiki/Czas_uniksowy
> wiec wystarczy do tej wartosci dodac/odjac ilosc sekund - w tym wypadku, 
> jakie uplynely w ciagu 31 dni.
> 
> $date = time() - (31 * 24 * 60 * 60);

... zakładając, że liczysz tuż po północy, a w badanym okresie nastąpiła
zmiana czasu, to zgadnij co wyjdzie.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: jak wygenerować datę
#230431
Author: XJL
Date: Mon, 26 May 2014 11:18
12 lines
1463 bytes
W dniu 26.05.2014 09:14, Borys Pogoreło pisze:
>> $date = time() - (31 * 24 * 60 * 60);
>
> ... zakładając, że liczysz tuż po północy, a w badanym okresie nastąpiła
> zmiana czasu, to zgadnij co wyjdzie.
>

timestamp będzie prawidłowy, niezależnie od stref czasowych, czasu 
letniego/zimowego, lat przestępnych i sekund przestępnych.

A to co później zrobi z timestampem aby uzyskać czytelną dla człowieka 
datę to już inna sprawa.
Re: jak wygenerować datę
#230432
Author: Borys Pogoreło
Date: Mon, 26 May 2014 12:28
13 lines
1352 bytes
Dnia Mon, 26 May 2014 13:18:52 +0200, XJL napisał(a):

>> ... zakładając, że liczysz tuż po północy, a w badanym okresie nastąpiła
>> zmiana czasu, to zgadnij co wyjdzie.
> 
> timestamp będzie prawidłowy, niezależnie od stref czasowych, czasu 
> letniego/zimowego, lat przestępnych i sekund przestępnych.

Pytanie w tytule jest o datę, nie o timestampa.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: jak wygenerować datę
#230433
Author: xantiros
Date: Tue, 27 May 2014 11:13
16 lines
1638 bytes
W dniu 2014-05-26 09:14, Borys Pogoreło pisze:
> Dnia Sun, 25 May 2014 05:57:17 +0000 (UTC), astro napisał(a):
>
>> http://pl.wikipedia.org/wiki/Czas_uniksowy
>> wiec wystarczy do tej wartosci dodac/odjac ilosc sekund - w tym wypadku,
>> jakie uplynely w ciagu 31 dni.
>>
>> $date = time() - (31 * 24 * 60 * 60);
>
> ... zakładając, że liczysz tuż po północy, a w badanym okresie nastąpiła
> zmiana czasu, to zgadnij co wyjdzie.
>

no to użyje klasy DateTime i tam ma wszystko co potrzeba

http://www.php.net/manual/en/class.datetime.php
Re: jak wygenerować datę
#230434
Author: Borys Pogoreło
Date: Tue, 27 May 2014 20:18
13 lines
1332 bytes
Dnia Tue, 27 May 2014 13:13:23 +0200, xantiros napisał(a):

>> ... zakładając, że liczysz tuż po północy, a w badanym okresie nastąpiła
>> zmiana czasu, to zgadnij co wyjdzie.
> 
> no to użyje klasy DateTime i tam ma wszystko co potrzeba
> http://www.php.net/manual/en/class.datetime.php

Nie da rady, trzeba by poczytać ze zrozumieniem.

-- 
Borys Pogoreło
borys(#)leszno,edu,pl
Re: jak wygenerować datę
#230437
Author: artiun
Date: Tue, 27 May 2014 23:10
25 lines
2804 bytes
W dniu 2014-05-26 09:14, Borys Pogoreło pisze:
> Dnia Sun, 25 May 2014 05:57:17 +0000 (UTC), astro napisał(a):
>
>> http://pl.wikipedia.org/wiki/Czas_uniksowy
>> wiec wystarczy do tej wartosci dodac/odjac ilosc sekund - w tym wypadku,
>> jakie uplynely w ciagu 31 dni.
>>
>> $date = time() - (31 * 24 * 60 * 60);
>
> .... zakładając, że liczysz tuż po północy, a w badanym okresie nastąpiła
> zmiana czasu, to zgadnij co wyjdzie.
>
Zmiana godziny, czasu letniego na zimowy i odwrotnie nie następuje o 
godzinie 00. Czy wówczas zmienia się dzień tygodnia? Nie będę Ci 
podpowiadał. To jest do zrobienia. Ale nie dla "tusk coś tam". On kombinuje 
i sam nie wie, nie umie opisać po co i dlaczego i jak na przykładach ma to 
działać.
To nie są odczucia czy też emocje, to jest matematyczne wyliczenie. Jeśli 
potrafi je człowiek posługując się rozumem to potrafi także i komputer przez 
niego programowany.

-- 
Artur
0 weeks 0 days 10 hours 27 minutes 11 seconds and 453 milliseconds.
"pl.comp.lang.php"
Re: jak wygenerować datę
#230435
Author: XJL
Date: Wed, 28 May 2014 06:45
35 lines
2703 bytes
W dniu 28.05.2014 01:10, artiun pisze:
> W dniu 2014-05-26 09:14, Borys Pogoreło pisze:
>> Dnia Sun, 25 May 2014 05:57:17 +0000 (UTC), astro napisał(a):
>>
>>> http://pl.wikipedia.org/wiki/Czas_uniksowy
>>> wiec wystarczy do tej wartosci dodac/odjac ilosc sekund - w tym wypadku,
>>> jakie uplynely w ciagu 31 dni.
>>>
>>> $date = time() - (31 * 24 * 60 * 60);
>>
>> .... zakładając, że liczysz tuż po północy, a w badanym okresie nastąpiła
>> zmiana czasu, to zgadnij co wyjdzie.
>>
> Zmiana godziny, czasu letniego na zimowy i odwrotnie nie następuje o
> godzinie 00. Czy wówczas zmienia się dzień tygodnia? Nie będę Ci
> podpowiadał. To jest do zrobienia.

Samodzielnie jest to cholernie trudne do zrobienia. Oprócz czasu 
letniego/zimowego jest jeszcze mnóstwo obostrzeń, takich jak lata 
przestępne, sekundy przestępne, zmiany czasu o pół godziny[1], o 45 
minut, sześć godzin [2], czy też o 5 godzin i 52 minuty [3]

Wyjątków jest tak dużo, że jeśli potrzebne jest dokładne wyliczenie 
różnicy czasu, dla każdego locale i każdej strefy czasowej, to nie ma 
innego wyjścia jak skorzystać z kobylastych bibliotek które mają te 
wszystkie wyjątki zapisane - takich jak wspomniana przez xantirosa.

W Polsce nie znajdziemy tak kuriozalnych wyjątków, ale pisząć 
oprogramowanie nie powinno się z góry zakładać, że tylko w Polsce będzie 
ono używane.

[1] 
http://www.reuters.com/article/2007/08/24/us-venezuela-time-idUSN2328980320070824
[2] http://www.timeanddate.com/time/time-zones-interesting.html
[3] http://www.timeanddate.com/time/change/china/shanghai?year=1927
Re: jak wygenerować datę
#230436
Author: artiun
Date: Wed, 28 May 2014 09:11
19 lines
2595 bytes
W dniu 2014-05-28 08:45, XJL pisze:
> W Polsce nie znajdziemy tak kuriozalnych wyjątków, ale pisząć oprogramowanie
> nie powinno się z góry zakładać, że tylko w Polsce będzie ono używane.
Ładnie i z przypisami. Dokładnie, po co i komu to potrzebne (taka 
dokładność). W "normalnych" zastosowaniach nikt się tym nie przejmuje. 
Ostatni dzień miesiąca to pierwszy kolejnego - 1 dzień. I jakoś to chodzi :)
Rozmawiamy o problemie, którego tak naprawdę nie ma.
Może warto zapytać tego, który zakładał wątek, po co mu to? Dlaczego tak, 
nie inaczej?

A tak z grubsza gdzie są dni przy zmianie kalendarza? 
Juliański/gregoriański, ile miesięcy miał rok za czasów rzymskich, ile te 
miesiące miały dni, jak się nazywały. Ale to już inna bajka :)


-- 
Artur
0 weeks 0 days 20 hours 28 minutes 21 seconds and 720 milliseconds.
"pl.comp.lang.php"
Re: jak wygenerować datę
#230438
Author: tusk, donald tusk
Date: Wed, 28 May 2014 09:19
3 lines
1347 bytes
nie jest to niezbędne, ale chcę wygenerować sobie wykres wejść robotów 
na stronę i potrzebna mi oś x... do tego jakoś to zrobić na mysqlu, też 
nie mam jeszcze pomysłu, ale może ten timestamp by się nadał...
Re: jak wygenerować datę
#230439
Author: R.e.m.e.K
Date: Wed, 28 May 2014 09:24
9 lines
1586 bytes
Dnia Wed, 28 May 2014 11:19:43 +0200, tusk, donald tusk napisał(a):

> nie mam jeszcze pomysłu, ale może ten timestamp by się nadał...

Tobie sie slowo pomysl pomylilo ze slowem rozum.

-- 
pozdro
R.e.m.e.K
Re: jak wygenerować datę
#230458
Author: tusk, donald tusk
Date: Wed, 28 May 2014 09:29
1 lines
1230 bytes
dobrze, że ty w europie...
Re: jak wygenerować datę
#230442
Author: grzessiek
Date: Tue, 03 Jun 2014 17:05
6 lines
1044 bytes
W dniu 2014-05-23 21:22, tusk, donald tusk pisze:
> jak wygenerować datę trzydziestu jeden dni wstecz począwszy od dziś z
> dowolnym odległym w czasie okresie?

mktime
g.
Re: jak wygenerować datę
#230453
Author: astro
Date: Fri, 06 Jun 2014 03:01
16 lines
1655 bytes
XJL wrote:
>> Zmiana godziny, czasu letniego na zimowy i odwrotnie nie następuje o
>> godzinie 00. Czy wówczas zmienia się dzień tygodnia? Nie będę Ci
>> podpowiadał. To jest do zrobienia.
> Samodzielnie jest to cholernie trudne do zrobienia. Oprócz czasu 
> letniego/zimowego jest jeszcze mnóstwo obostrzeń, takich jak lata 
> przestępne, sekundy przestępne, zmiany czasu o pół godziny[1], o 45 
> minut, sześć godzin [2], czy też o 5 godzin i 52 minuty [3]

Widze, ze jest gotowa funkcja, ktora POWINNA takie rzeczy uwzgledniac:
date_modify
http://docs.php.net/manual/pl/datetime.modify.php
-- 
Pozdrawiam
Radoslaw Ziomber
www.astrofizyka.info
Re: jak wygenerować datę
#230452
Author: tusk, donald tusk
Date: Fri, 06 Jun 2014 10:48
2 lines
1213 bytes
dzięki, a gdzie znajdę opis wszystkich możliwych parametrów modify?
date_modify($date, '+1 day');
Re: jak wygenerować datę
#230455
Author: artiun
Date: Sat, 07 Jun 2014 04:46
9 lines
2069 bytes
W dniu 2014-06-06 12:48, tusk, donald tusk pisze:
> dzięki, a gdzie znajdę opis wszystkich możliwych parametrów modify?
> date_modify($date, '+1 day');
ręce opadają, to już szczyt bezczelności.

-- 
Artur
0 weeks 2 days 18 hours 9 minutes 30 seconds and 950 milliseconds.
"pl.comp.lang.php"
Re: jak wygenerować datę
#230457
Author: Wojtek Gapiński
Date: Sat, 07 Jun 2014 08:34
10 lines
1406 bytes
Dnia 07-06-2014 06:46 artiun napisał:

> ręce opadają, to już szczyt bezczelności.
>

No co Ty, widać że nie znasz Jego możliwości :D

-- 
Wojtek Gapiński
http://jwmprojekt.pl
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads