Format date string sintaksa

Pa zato postoji dokumentacija da mu posaljes datum u tom formatu.

Upravo to legendo moja,on upravo to želi negdje gdje je sve to dokumentovano kako treba,prihvaćeno je i koristi se.

Htio bi da sve baze i svi jezici za format dd.mm.yyyy imaju bas taj format, ne da netko pise dd.mm.yyyy, a drugi dd.mm.gggg?

Dobar paralelni primjer bi bila sintaksa regularnih izraza.

Zamisli da svaki jezik drugačije tretira tu sintaksu regularnih izraza? Pa di bi došli.

Odstupanja neka uvijek postoje…ali teži se uvijek tome da isplivaju na zajedničku nit …i sa regexima to radi odlično. Barem što sam se ja susreo sa regexima u različitim jezicima, svaki engine ih je tretirao na identičan način.

Sada ne pričam o sintaksi jezika koji poziva regularni izraz na izvršavanje…nego o sintaksi samog regularnog izraza.

Pročitaj temu isponova, sve piše.

Ako radis js komponentu koja prima i salje datum kao parametar, onda to stavis u dokumentaciju i svi se toga drzimo koji koristimo tu komponentu.

Znam sto tebe muci, ali naglasak je na dokumentaciji i to je to.

A ako tebi treba to sto ti treba napravis si fino za svaki jezik koji koristis date mapper funkciju i stvar rijesena koja ce mapirati razlicite formate datuma. U c# ces imati svoj library, za php napravis u c-u kao ekstenziju i sl. i rijesio si problem, ako ti to treba itd…

Postoji js, jquery i hrpa drugih biblioteka i frameworka i svi uredno se mogu koristiti sa bilo kojim backend jezikom u kombinaciji za web.

Meni je ovaj topic potpuno smijesan… Ne znam mozda je greska u meni, toliko energije baceno u vjetar…

1 Like

Buduci je to normJS, znaci JavaScript, mogao bi koristiti postojecu normu JS-a koja veli nema “format” metode, ja bih izabrao “locale”:

1 Like

Ovaj options format sa linkova je skoro na ovoj mentalnoj razini:

Nema veze što je to dio JS-a …to je daleko od one sintakse koju tražim …i koja se već lagano i generalno kristalizira kroz različite programske jezike / biblioteke.

Jutros nisam imao vremena…uglavnom, ne kužim čemu sada okolišanje.

Da te citiram što ti je bio raniji argument:

Znači, gornja tvrdnja kaže da sve što ima smisla već postoji.
A to je 100% netočna tvrdnja i to ti je jako loš temelj za graditi vlastitu istinu.
Tako razmišljaju curice koje se boje mijenjati svijet… …a ti želiš više od sebe, onda za početak prestani tako razmišljati. I budi muško i uvidi da si bubnuo 100% netočnu tvrdnju. Tko ne može priznati da je pogriješio…prvenstveno šteti sebi!

Nitko nije spominjao niti sve baze niti sve jezike. Pa naravno da je to nemoguće.
Rekao sam za komponente koje ja osobno pravim i moja okolina…da želim da se mi držimo zajedničke norme.

I u startu želim odabrati onda nešto što je već dobro prihvaćeno, a time logično i dobro dokumentirano.

Kako onda moment.js utječe na formatiranje datuma unutar JS jezika?

Napisati libriry koji će timestamp formatirati prema date-format-stringu koji ima dokumentiratnu specifikaciju, nije velik posao.
A kada se libriry jednom kreira, pretipkati ga u drugi jezik je skoro pa copy-paste proces.

Odjednom su prakse dobre. A kada ih se uvodi, onda nisu dobre. :smiley:
To je opet žešća kontradiktornost samom sebi, hehe.
Da bi postojali standardi, ponekada moramo i o njima razmišljati :wink:

Itekako sam za promjenu:
1.uvjet – da ta promjena ima smisla
2.uvjet – da poboljsava postojeca rjesenja
3.uvjet – da nekome zaista treba

Ne kuzim cemu ljutnja, dajemo ti dobro namjerne savjete.

Moment.js – gdje je tu standard za datum?
Npr. Ako stavim format 1 kao parametar i odaberes razlicite drzave, ne dobijes isti output i opet imas problem. Jer ako je local usa i format 1 dobit ces 2/7/2019, ako je hr i format 1 dobit ces 02.07.2019, i opet ti treba business logika da utvrdis koji je format i napravis konvert i zapises u bazu i obrnuto.

Ili to radi magija?

Zato sam ti dao link za automatsku detekciju locale za .net.

Nego jedno pitanjce, ako još ima voljnih :smiley:

Pošto vidim da je u ovoj temi bilo puno nesporazuma oko termina.

Npr. ja sam sintaksu o kojoj pričam nazvao: “date-format-string sintaksa” …kako vidim, mnogi su mislili da pričam o formatu datuma.

ALI “date-format-string sintaksa” je samo instrukcija koja prevodi datum u neki od formata…ona sama po sebi nije format, iako definira koji format datuma će se prikazati.

E sada, za početak treba smisliti prigodan termin za “date-format-string sintaksa” ??

Pucajte prijedloge. Neki moji:

“regdate”
“regdate-syntax”
// aludacija na regex, ali nije baš intuitivno…

Heto, ako ima voljnih …ajmo barem zajedno nazvati ovaj entitet. Ili ime već postoji?

To je ok. Možemo pričati o tome da li promjena ima smisla.
Ali, ponavljam, onda je totalno suvišna tvoja rečenica:

“Da to ima smisla, to bi već postojalo”

…zar ne??

A sad možemo nastaviti pričati o tome da li ima smisla. :wink:
Ali za početak…moraš se potruditi shvatiti razliku između:

“format datuma” & “sintaksa koja definira format datuma”

To dvoje nije isto!!! Ti u zadnjem postu opet pričaš o formatu datuma…

Ne kuzim cemu ljutnja, dajemo ti dobro namjerne savjete.

Vjeruj, ja se ne ljutim. Mene ovo zabavlja.
Ja samo podižem ton na ono što mislim da ti je vrijedno shvatiti. Vidiš da se oko tebe trudim, a da oko nekih ne… :wink: Ali to samo oni uviđaju da ih izostaju odgovori…

Ajmo ovako.

Objasni svoj problem na nekom primjeru. Da lakse shvatimo sto te muci.

Uplati listić za loto. Veća je šansa. :rofl:

3 Likeova

Evo recimo, izvlačim neki random datepicker s googlea:
http://t1m0n.name/air-datepicker/docs/

Vidi dolje niže liniju za konfiguraciju te komponente:
data-date-format="MM yyyy"

Ok, jasno nam je da se u primjeru radi o formatu gdje se prikazuje samo mjesec i godina. I to je format datuma.

No onaj element koji je definirao format datuma je nekakav string “MM yyyy”…koji ima neku određenu sintaksu i pravila koji će engine te komponente razumjeti da bi prikazao datum u traženom formatu.

Znači, taj string definira format datuma…ali on sam po sebi nije format!!!
Taj string, ajmo ga nazvati “regdate” može izgledati:

MM yyyy
dd.MM.yy
dd.yy


itd.

Znači, regdate može definirati jako puno različitih formata datuma, no on je i dalje jedan regdate. On je instrukcija koja ukazuje na format datuma.
Engine koji razumije tu instrukciju, mora znati koja pravila su ugrađena u tu sintaksu regdate-a.

E sada, kada bi ja običnom korisniku htio reći koje karakteristike posjeduje regdate-a iz gornjeg primjera, bilo bi lijepo da mu to mogu linkat.
Taj link se odnosti na karakteristike tog regdate-a …i nema gotovo nikakve veze sa gornjom komponentom.
Jer gornja komponenta i neka druga komponenta…mogu razumjeti istu sintaksu regdate-a. Što je poželjno.

Konkretno za C# ti mogu linkat karakteristike njihovog regdate-a, i to sam linkao odmah u prvom postu: https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

To je već jedna poprilično prihvaćena regdate sintaksa, jer vidimo da i moment.js koristi slično …i C# i gornja komponenta.
I kada je god netko ovdje u temi prikazivao neki format datuma, koristio je regdate sporazumjevajući da je ta sintaksa u igri.

Ali ipak, nitko nije postavio link na dokumentaciju te regdate sintakse. Najbliže što smo vidjeli o dokumentaciji te regdate sintakse je link na C# koji sam okačio u uvodni post.

Što jasno ukazuje da ta sintaksa teži da bude generalno prihvaćena, ali da nema svoju kuću.
Leti okolo ko roj pčela bez košnice …i čeka da ju netko zarobi i na glas kaže: To je norma za regdate.

Nadam se da sam objasnio razliku između “regdate” i “formata datuma”.

Formata datuma naravno može biti koliko god…beskonačno.
Ali svima bi život bio jednostavniji da je što manje različitih regdate sintaksi. …a zašto je to tako, to pretpostavljam da i sam znaš?

Ako praviš nešto što nije samo za osobne svrhe…nego će se koristiti unutar neke grupe ljudi…onda želiš da to bude što bliže normativima zajednice.
Da se sad ta grupa ljudi ne izolira od ostatka svijeta svojim principima…to je valjda logično.

U mom slučaju se prave komponente koje rade sa datumima i treba se opredjeliti na neki regdate koji će te komponente razumjeti.

Koji regdate odabrati? Pa trenutno najprihvaćeniji.

Zato sam pitao u startu za regdate koji je najprihvaćeniji i dokumentiran…i to je cijela mudrolija.

Sve ove tvoje probleme rjesavaju locale-i i timestamp.

Ako imas web app, korisnik ima svoje postavke za datum vrijeme, time zone i sl., kad dohvatis neki date prebacis ga u timestamp i zapises u bazu u formatu u kojem ti je polje.

Obrnuto u timestamp i u format koji ima definiran korisnik u web app, bez obzira jel to ispis na ekran ili u nekoj js komponenti.