🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #26563

Re: python vs php - potrzebne argumenty

#26563
From: Jaroslaw Zabiello
Date: Tue, 03 Nov 2009 15:40
47 lines
3444 bytes
On Mon, 02 Nov 2009 23:56:11 -0000, Marcin Nowak  
<marcin.j.nowak@gmail.com> wrote:

> On Oct 30, 9:16 am, pakalk <pak...@gmail.com> wrote:
>> On 30 Paź, 08:56, Marek Wywiał <onj...@gmail.com> wrote:
>
>> > 'obsługa' dat jest cudowna, wystawmy sobie fakturkę
>> > <?php
>> >   $t = '2003/02/30';
>> >   var_dump(strtotime($t));
>>
>> > radość księgowej - bezcenna
>>
>> a co wychodzi? Moze format nie taki jak obslugiwany? Co sie wtedy
>> dziwic?
>
> po prostu nie ma 30 lutego. z ciekawosci sprawdz wynik.

var_dump(strtotime('2003/02/32')); # => false
echo strftime("%Y/%m/%d", (strtotime('2003/02/32'))); # 1970/01/01

Nieprzewidywalność i zero intuicyjności to najwidocznie integralna cecha  
pehapa. W tym wypadku bezmyślnie zakłada że każdy miesiąc może mieć do 31  
dni. Z drugiej strony rozpoznaje lata przestępne. Rok 2003 luty miał 29  
dni. PHP po swojemu sobie to interpretuje, więc 2003-02-30 to dla niego to  
samo co 2003-03-01. Raczej mało kto wpadnie na to, że coś takiego się może  
stać. Więc trudno taki błąd wyłapać. Ani wyjątku ani warninga, ani notice,  
kompletnie nic. Faktycznie księgowa się może zdziwić. Nie tylko jak  
uważam, że PHP nie nadaje się do poważnych zastosowań. W nim roi się od  
takiego szeregu nonsensów.

Dla odmiany, jak do problemu podchodzi Ruby:

require 'date'
Date.strptime('2003/02/29', '%Y/%m/%d') # => wyjątek ArgumentError:  
invalid date
Date.strptime('2003/02/28', '%Y/%m/%d') # => => #<Date:  
4905397/2,0,2299161>

Zła data jest złą datą i już. Proste i logiczne. Wyrzuca wyjątek więc  
można to gdzieś wyłapać w wyższej warstwie. Nic się nie prześliźnie. W PHP  
bardzo łatwo przeoczyć mnostwo błędów. Nawet kopanie w logach nie  
gwarantuje (w powyższyzm przypadku nie ma żadnego warninga). To język dla  
masochisty.

-- 
JZ http://blog.zabiello.com
Technical Details
Message-ID: <op.u2tsh4k3eaqjf2@mydot.ftpviewlocal.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
References: <h83in7$rl3$1@inews.gazeta.pl> <h8447e$mg9$1@inews.gazeta.pl> <6a8e97cb-add7-450a-b7f2-f16ecc3cd0f6@y23g2000yqd.googlegroups.com> <6a691836-80db-4b66-bc41-f3c15e6782f7@v36g2000yqv.googlegroups.com> <6e26a02f-20fa-4a82-a722-9fbf78f0ef29@z41g2000yqz.googlegroups.com> <hcc9nt$eqr$1@news.lublin.pl> <f03c49b0-651b-4afa-ad73-db8dde63fdef@p35g2000yqh.googlegroups.com> <hccvvt$u0t$1@news.lublin.pl> <ac46bc62-a3ee-40a1-ac5d-860be3029272@z41g2000yqz.googlegroups.com> <hcd7ck$3a6$1@news.lublin.pl> <2f2d1c53-fa9a-40b1-be71-60f530a0be72@g23g2000yqh.googlegroups.com> <21c2c0bd-464f-45b2-a3ce-449c0412d48c@b2g2000yqi.googlegroups.com> <ad429fa2-5c6d-47a8-8337-1dafcd18c0b9@a31g2000yqn.googlegroups.com> <858f3466-5bdd-4c10-baa1-974089ef29ba@s31g2000yqs.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
From: "Jaroslaw Zabiello" <usenet@onet.eu>
Newsgroups: pl.comp.lang.python
Subject: Re: python vs php - potrzebne argumenty
Date: Tue, 03 Nov 2009 15:40:42 -0000
Organization: http://onet.pl
Lines: 76
Message-ID: <op.u2tsh4k3eaqjf2@mydot.ftpviewlocal.com>
References: <h83in7$rl3$1@inews.gazeta.pl> <h8447e$mg9$1@inews.gazeta.pl> <6a8e97cb-add7-450a-b7f2-f16ecc3cd0f6@y23g2000yqd.googlegroups.com> <6a691836-80db-4b66-bc41-f3c15e6782f7@v36g2000yqv.googlegroups.com> <6e26a02f-20fa-4a82-a722-9fbf78f0ef29@z41g2000yqz.googlegroups.com> <hcc9nt$eqr$1@news.lublin.pl> <f03c49b0-651b-4afa-ad73-db8dde63fdef@p35g2000yqh.googlegroups.com> <hccvvt$u0t$1@news.lublin.pl> <ac46bc62-a3ee-40a1-ac5d-860be3029272@z41g2000yqz.googlegroups.com> <hcd7ck$3a6$1@news.lublin.pl> <2f2d1c53-fa9a-40b1-be71-60f530a0be72@g23g2000yqh.googlegroups.com> <21c2c0bd-464f-45b2-a3ce-449c0412d48c@b2g2000yqi.googlegroups.com> <ad429fa2-5c6d-47a8-8337-1dafcd18c0b9@a31g2000yqn.googlegroups.com> <858f3466-5bdd-4c10-baa1-974089ef29ba@s31g2000yqs.googlegroups.com>
NNTP-Posting-Host: 89.167.220.4
Mime-Version: 1.0
X-Trace: news.onet.pl 1257262845 337 89.167.220.4 (3 Nov 2009 15:40:45 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Tue, 3 Nov 2009 15:40:45 +0000 (UTC)
To: "Marcin Nowak" <marcin.j.nowak@gmail.com>
User-Agent: Opera Mail/10.01 (MacIntel)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit