{"id":36337,"date":"2025-12-13T22:40:47","date_gmt":"2025-12-13T19:40:47","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36337"},"modified":"2025-12-13T22:40:47","modified_gmt":"2025-12-13T19:40:47","slug":"day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/","title":{"rendered":"Day.js ile JavaScript&#8217;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme"},"content":{"rendered":"<p><body><\/p>\n<h2>Day.js ile JavaScript&#8217;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme<\/h2>\n<h2>Giri\u015f: Neden Day.js?<\/h2>\n<p>Modern web uygulamalar\u0131 geli\u015ftirirken, tarih ve saatlerle \u00e7al\u0131\u015fmak ka\u00e7\u0131n\u0131lmaz bir gerekliliktir. Kullan\u0131c\u0131 kay\u0131t tarihlerinden etkinlik planlamalar\u0131na, zaman damgalar\u0131ndan raporlama sistemlerine kadar pek \u00e7ok alanda tarih ve saat verilerini do\u011fru bir \u015fekilde i\u015flemek, uygulaman\u0131n g\u00fcvenilirli\u011fi ve kullan\u0131c\u0131 deneyimi a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. JavaScript&#8217;in yerle\u015fik <code>Date<\/code> nesnesi, temel tarih ve saat i\u015flemleri i\u00e7in bir ba\u015flang\u0131\u00e7 noktas\u0131 sunsa da, karma\u015f\u0131k senaryolarda (farkl\u0131 formatlarda ayr\u0131\u015ft\u0131rma, zaman dilimi y\u00f6netimi, g\u00f6receli zaman hesaplamalar\u0131 veya tarih manip\u00fclasyonlar\u0131 gibi) yetersiz kalabilir ve geli\u015ftiriciler i\u00e7in \u00f6nemli zorluklar yaratabilir. <code>Date<\/code> nesnesinin mutable yap\u0131s\u0131, farkl\u0131 taray\u0131c\u0131lardaki tutars\u0131z davran\u0131\u015flar\u0131 ve k\u0131s\u0131tl\u0131 API&#8217;si, daha g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm aray\u0131\u015f\u0131n\u0131 tetiklemi\u015ftir.<\/p>\n<p>\u0130\u015fte tam bu noktada, Day.js gibi \u00fc\u00e7\u00fcnc\u00fc taraf k\u00fct\u00fcphaneler devreye girer. Day.js, taray\u0131c\u0131lar ve Node.js ortamlar\u0131nda tarih ve saatleri ayr\u0131\u015ft\u0131rmak, do\u011frulamak, manip\u00fcle etmek ve g\u00f6r\u00fcnt\u00fclemek i\u00e7in hafif, basit ve g\u00fc\u00e7l\u00fc bir API sunar. Moment.js&#8217;in pop\u00fclerli\u011fini takiben geli\u015ftirilen Day.js, onunla b\u00fcy\u00fck \u00f6l\u00e7\u00fcde uyumlu bir API&#8217;ye sahip olmakla birlikte, \u00e7ok daha k\u00fc\u00e7\u00fck boyutu (s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f haliyle yakla\u015f\u0131k 2KB) sayesinde performans avantaj\u0131 sa\u011flar. Bu makalede, Day.js&#8217;in temel \u00f6zelliklerini ve \u00e7e\u015fitli kullan\u0131m senaryolar\u0131n\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h2>Day.js Kurulumu ve Temel Kullan\u0131m<\/h2>\n<p>Day.js&#8217;i projenize dahil etmek olduk\u00e7a basittir. \u00c7e\u015fitli y\u00f6ntemlerle kurulum yapabilir ve kullanmaya ba\u015flayabilirsiniz.<\/p>\n<h3>NPM veya Yarn ile Kurulum<\/h3>\n<p>\u00c7o\u011fu modern JavaScript projesinde, Day.js&#8217;i bir paket y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla kurmak en yayg\u0131n y\u00f6ntemdir:<\/p>\n<pre><code class=\"language-bash\">npm install dayjs\n<h2>veya<\/h2>\nyarn add dayjs<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, projenizin ilgili dosyalar\u0131nda Day.js&#8217;i i\u00e7e aktararak kullanabilirsiniz:<\/p>\n<pre><code class=\"language-javascript\">import dayjs from 'dayjs';\n\n\/\/ Mevcut tarih ve saati i\u00e7eren bir Day.js nesnesi olu\u015fturma\nconst now = dayjs();\nconsole.log(now.format()); \/\/ \u00d6rn: 2023-10-27T10:30:00+03:00<\/code><\/pre>\n<h3>CDN \u00dczerinden Kullan\u0131m<\/h3>\n<p>E\u011fer bir paket y\u00f6neticisi kullanm\u0131yorsan\u0131z veya h\u0131zl\u0131 bir test yapmak istiyorsan\u0131z, Day.js&#8217;i bir CDN (\u0130\u00e7erik Da\u011f\u0131t\u0131m A\u011f\u0131) \u00fczerinden do\u011frudan HTML dosyan\u0131za ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-html\"><!DOCTYPE html>\n<html lang=\"tr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Day.js CDN \u00d6rne\u011fi<\/title>\n    <script src=\"https:\/\/unpkg.com\/dayjs@latest\/dayjs.min.js\"><\/script>\n<\/head>\n<body>\n    <script>\n        const now = dayjs();\n        document.write(<code>\u015eu anki tarih ve saat: ${now.format('YYYY-MM-DD HH:mm:ss')}<\/code>);\n    <\/script>\n<\/body>\n<\/html><\/code><\/pre>\n<p>Bu y\u00f6ntem, \u00f6zellikle k\u00fc\u00e7\u00fck projeler veya prototipleme i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h2>Tarih ve Saatleri Ayr\u0131\u015ft\u0131rma (Parsing)<\/h2>\n<p>Day.js&#8217;in en temel ve g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri, farkl\u0131 kaynaklardan gelen tarih ve saat verilerini kolayca Day.js nesnelerine d\u00f6n\u00fc\u015ft\u00fcrebilmesidir.<\/p>\n<h3>Varsay\u0131lan Ayr\u0131\u015ft\u0131rma<\/h3>\n<p>Day.js, <code>dayjs()<\/code> fonksiyonuna parametre olarak ge\u00e7irilen de\u011fere g\u00f6re ak\u0131ll\u0131 ayr\u0131\u015ft\u0131rma yapar:<\/p>\n<p>*   <strong>Parametresiz \u00c7a\u011fr\u0131:<\/strong> <code>dayjs()<\/code><br \/>\n    *   Mevcut tarih ve saati i\u00e7eren bir Day.js nesnesi olu\u015fturur.<\/p>\n<pre><code class=\"language-javascript\">const bugun = dayjs();\n    console.log(bugun.format()); \/\/ \u00d6rn: 2023-10-27T10:30:00+03:00<\/code><\/pre>\n<p>*   <strong>JavaScript <code>Date<\/code> Nesnesi:<\/strong> <code>dayjs(Date)<\/code><br \/>\n    *   Yerle\u015fik JavaScript <code>Date<\/code> nesnesini Day.js nesnesine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-javascript\">const nativeDate = new Date(2023, 9, 27, 10, 30); \/\/ Ekim 27, 2023\n    const dayjsFromNative = dayjs(nativeDate);\n    console.log(dayjsFromNative.format('YYYY-MM-DD HH:mm:ss')); \/\/ 2023-10-27 10:30:00<\/code><\/pre>\n<p>*   <strong>Unix Timestamp (Milisaniye):<\/strong> <code>dayjs(Number)<\/code><br \/>\n    *   Unix zaman damgas\u0131n\u0131 (milisaniye cinsinden) kullanarak bir Day.js nesnesi olu\u015fturur.<\/p>\n<pre><code class=\"language-javascript\">const unixTimestampMs = 1678886400000; \/\/ 15 Mart 2023 00:00:00 GMT\n    const dayjsFromMs = dayjs(unixTimestampMs);\n    console.log(dayjsFromMs.format('YYYY-MM-DD HH:mm:ss Z')); \/\/ 2023-03-15 03:00:00 +03:00 (Yerel saate g\u00f6re)<\/code><\/pre>\n<p>*   <strong>ISO 8601 String ve Bilinen String Formatlar\u0131:<\/strong> <code>dayjs(String)<\/code><br \/>\n    *   ISO 8601 format\u0131ndaki dizeleri (\u00f6rne\u011fin &#8220;2023-10-27T10:30:00Z&#8221;) ve di\u011fer yayg\u0131n tarih\/saat dizelerini otomatik olarak ayr\u0131\u015ft\u0131r\u0131r.<\/p>\n<pre><code class=\"language-javascript\">const isoString = \"2023-10-27T14:45:30.123Z\"; \/\/ UTC zaman dilimi\n    const dayjsFromIso = dayjs(isoString);\n    console.log(dayjsFromIso.format('YYYY-MM-DD HH:mm:ss [UTC]')); \/\/ 2023-10-27 14:45:30 UTC\n\n    const commonString = \"2023-10-27 10:30:00\";\n    const dayjsFromCommon = dayjs(commonString);\n    console.log(dayjsFromCommon.format('DD\/MM\/YYYY HH:mm')); \/\/ 27\/10\/2023 10:30<\/code><\/pre>\n<h3>Bilinen String Formatlar\u0131ndan Ayr\u0131\u015ft\u0131rma<\/h3>\n<p>Bazen, Day.js&#8217;in varsay\u0131lan olarak tan\u0131mad\u0131\u011f\u0131 \u00f6zel bir string format\u0131yla kar\u015f\u0131la\u015fabilirsiniz. Bu durumda, <code>dayjs(string, format)<\/code> metodunu kullanarak Day.js&#8217;e string&#8217;in hangi formatta oldu\u011funu belirtmeniz gerekir. Bu \u00f6zellik i\u00e7in <code>CustomParseFormat<\/code> eklentisine ihtiyac\u0131n\u0131z olabilir.<\/p>\n<p>\u00d6nce eklentiyi y\u00fckleyelim:<\/p>\n<pre><code class=\"language-javascript\">import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs\/plugin\/customParseFormat';\ndayjs.extend(customParseFormat);\n\nconst tarihString = \"27\/10\/2023 15:00\";\nconst format = \"DD\/MM\/YYYY HH:mm\";\nconst dayjsOzellestirilmis = dayjs(tarihString, format);\nconsole.log(dayjsOzellestirilmis.format('MMMM D, YYYY [saat] H:mm')); \/\/ Ekim 27, 2023 saat 15:00\n\nconst baskaFormat = \"2023-10-27 Cuma\";\nconst format2 = \"YYYY-MM-DD dddd\"; \/\/ dddd: Haftan\u0131n tam g\u00fcn\u00fc (T\u00fcrk\u00e7e i\u00e7in locale gerekir)\nconst dayjsBaska = dayjs(baskaFormat, format2);\nconsole.log(dayjsBaska.format('dddd, MMMM DD, YYYY')); \/\/ Cuma, Ekim 27, 2023<\/code><\/pre>\n<p>Bu, \u00f6zellikle kullan\u0131c\u0131 girdilerini veya harici sistemlerden gelen verileri i\u015flerken \u00e7ok \u00f6nemlidir.<\/p>\n<h3>Nesne Tabanl\u0131 Ayr\u0131\u015ft\u0131rma<\/h3>\n<p>Day.js, tarih ve saat bile\u015fenlerini do\u011frudan bir nesne olarak da alabilir. Bu, belirli bir tarihin y\u0131l, ay, g\u00fcn gibi bile\u015fenlerini ayr\u0131 ayr\u0131 ayarlamak istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-javascript\">const dayjsFromObject = dayjs({\n    year: 2023,\n    month: 9, \/\/ Ay 0'dan ba\u015flar (Ocak=0, Ekim=9)\n    day: 27,\n    hour: 16,\n    minute: 0,\n    second: 0,\n    millisecond: 0\n});\nconsole.log(dayjsFromObject.format('YYYY-MM-DD HH:mm:ss')); \/\/ 2023-10-27 16:00:00<\/code><\/pre>\n<h2>Tarih ve Saatleri Do\u011frulama (Validation)<\/h2>\n<p>Bir tarih string&#8217;ini ayr\u0131\u015ft\u0131rd\u0131ktan sonra, bu ayr\u0131\u015ft\u0131rma i\u015fleminin ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 veya ge\u00e7erli bir tarih olu\u015fturup olu\u015fturmad\u0131\u011f\u0131n\u0131 kontrol etmek kritik bir ad\u0131md\u0131r. Day.js, <code>isValid()<\/code> metodu ile bu kontrol\u00fc kolayla\u015ft\u0131r\u0131r.<\/p>\n<pre><code class=\"language-javascript\">import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs\/plugin\/customParseFormat';\ndayjs.extend(customParseFormat);\n\n\/\/ Ge\u00e7erli bir tarih\nconst validDate = dayjs(\"2023-10-27\");\nconsole.log(<code>'2023-10-27' ge\u00e7erli mi? ${validDate.isValid()}<\/code>); \/\/ true\n\n\/\/ Ge\u00e7ersiz bir tarih (ay 12'den b\u00fcy\u00fck)\nconst invalidDate = dayjs(\"2023-13-01\");\nconsole.log(<code>'2023-13-01' ge\u00e7erli mi? ${invalidDate.isValid()}<\/code>); \/\/ false\n\n\/\/ Ge\u00e7ersiz formatla ayr\u0131\u015ft\u0131rma (customParseFormat olmadan veya yanl\u0131\u015f formatla)\nconst wrongFormat = dayjs(\"27.10.2023\", \"YYYY-MM-DD\");\nconsole.log(<code>'27.10.2023' (YYYY-MM-DD format\u0131yla) ge\u00e7erli mi? ${wrongFormat.isValid()}<\/code>); \/\/ false\n\n\/\/ Do\u011fru formatla ayr\u0131\u015ft\u0131rma\nconst correctFormat = dayjs(\"27.10.2023\", \"DD.MM.YYYY\");\nconsole.log(<code>'27.10.2023' (DD.MM.YYYY format\u0131yla) ge\u00e7erli mi? ${correctFormat.isValid()}<\/code>); \/\/ true\n\n\/\/ Bo\u015f veya anlams\u0131z string\nconst emptyString = dayjs(\"\");\nconsole.log(<code>Bo\u015f string ge\u00e7erli mi? ${emptyString.isValid()}<\/code>); \/\/ false<\/code><\/pre>\n<p><code>isValid()<\/code> metodu, kullan\u0131c\u0131 giri\u015flerini i\u015flerken, API&#8217;lerden gelen verileri kontrol ederken veya veritaban\u0131na kaydetmeden \u00f6nce tarih formatlar\u0131n\u0131 do\u011frulamak i\u00e7in vazge\u00e7ilmezdir. Bu sayede uygulaman\u0131z\u0131n beklenmedik hatalar vermesinin \u00f6n\u00fcne ge\u00e7ebilirsiniz.<\/p>\n<h2>Tarih ve Saatleri Manip\u00fcle Etme (Manipulation)<\/h2>\n<p>Day.js&#8217;in en g\u00fc\u00e7l\u00fc y\u00f6nlerinden biri, tarih ve saatler \u00fczerinde kolayca ekleme, \u00e7\u0131karma ve ayarlama yapabilmesidir.<\/p>\n<h3>Ekleme ve \u00c7\u0131karma (Adding and Subtracting)<\/h3>\n<p><code>add()<\/code> ve <code>subtract()<\/code> metotlar\u0131, belirli bir miktar\u0131 (say\u0131) belirli bir birimle (string) mevcut tarihe eklemenize veya \u00e7\u0131karman\u0131za olanak tan\u0131r.<\/p>\n<p>*   <strong>Birimler:<\/strong> <code>'year'<\/code>, <code>'month'<\/code>, <code>'day'<\/code>, <code>'hour'<\/code>, <code>'minute'<\/code>, <code>'second'<\/code>, <code>'millisecond'<\/code>. K\u0131saltmalar\u0131 da kullanabilirsiniz: <code>'y'<\/code>, <code>'M'<\/code>, <code>'d'<\/code>, <code>'h'<\/code>, <code>'m'<\/code>, <code>'s'<\/code>, <code>'ms'<\/code>.<\/p>\n<pre><code class=\"language-javascript\">const bugun = dayjs(); \/\/ \u015eu anki tarih ve saat\n\n\/\/ 5 g\u00fcn ekle\nconst besGunSonra = bugun.add(5, 'day');\nconsole.log(<code>5 g\u00fcn sonra: ${besGunSonra.format('YYYY-MM-DD')}<\/code>);\n\n\/\/ 2 ay \u00e7\u0131kar\nconst ikiAyOnce = bugun.subtract(2, 'month');\nconsole.log(<code>2 ay \u00f6nce: ${ikiAyOnce.format('YYYY-MM-DD')}<\/code>);\n\n\/\/ 3 saat ekle ve 30 dakika \u00e7\u0131kar\nconst ileriGeri = bugun.add(3, 'hour').subtract(30, 'minute');\nconsole.log(<code>3 saat ileri, 30 dakika geri: ${ileriGeri.format('HH:mm:ss')}<\/code>);<\/code><\/pre>\n<h3>Ayarlama (Setting)<\/h3>\n<p><code>set()<\/code> metodu, belirli bir tarih biriminin de\u011ferini do\u011frudan ayarlaman\u0131z\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-javascript\">const simdi = dayjs();\n\n\/\/ Y\u0131l\u0131 2025 olarak ayarla\nconst yeniYil = simdi.set('year', 2025);\nconsole.log(<code>Y\u0131l\u0131 2025 olarak ayarla: ${yeniYil.format('YYYY-MM-DD')}<\/code>);\n\n\/\/ Ay\u0131 Ocak (0) olarak ayarla\nconst ocakAy = simdi.set('month', 0); \/\/ Ay 0'dan ba\u015flar (Ocak=0, Aral\u0131k=11)\nconsole.log(<code>Ay\u0131 Ocak olarak ayarla: ${ocakAy.format('MMMM DD, YYYY')}<\/code>);\n\n\/\/ Saati 18:00 olarak ayarla\nconst aksamSaati = simdi.set('hour', 18).set('minute', 0).set('second', 0);\nconsole.log(<code>Saati 18:00 olarak ayarla: ${aksamSaati.format('HH:mm:ss')}<\/code>);<\/code><\/pre>\n<h3>Ba\u015flang\u0131\u00e7 ve Biti\u015f Tarihleri (Start and End of Time Units)<\/h3>\n<p><code>startOf()<\/code> ve <code>endOf()<\/code> metotlar\u0131, belirli bir zaman biriminin ba\u015flang\u0131c\u0131na veya biti\u015fine gitmenizi sa\u011flar. Bu, takvim uygulamalar\u0131 veya zaman dilimi hesaplamalar\u0131 i\u00e7in \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>*   <strong>Birimler:<\/strong> <code>'year'<\/code>, <code>'month'<\/code>, <code>'day'<\/code>, <code>'hour'<\/code>, <code>'minute'<\/code>, <code>'second'<\/code>.<\/p>\n<pre><code class=\"language-javascript\">const tarih = dayjs('2023-10-27 15:30:45');\n\n\/\/ Ay\u0131n ba\u015flang\u0131c\u0131\nconst ayinBaslangici = tarih.startOf('month');\nconsole.log(<code>Ay\u0131n ba\u015flang\u0131c\u0131: ${ayinBaslangici.format('YYYY-MM-DD HH:mm:ss')}<\/code>); \/\/ 2023-10-01 00:00:00\n\n\/\/ Haftan\u0131n sonu (Pazar, yerel ayarlara g\u00f6re de\u011fi\u015febilir)\nconst haftaninSonu = tarih.endOf('week');\nconsole.log(<code>Haftan\u0131n sonu: ${haftaninSonu.format('YYYY-MM-DD HH:mm:ss')}<\/code>); \/\/ \u00d6rn: 2023-10-29 23:59:59 (Pazar)\n\n\/\/ G\u00fcn\u00fcn ba\u015flang\u0131c\u0131\nconst gununBaslangici = tarih.startOf('day');\nconsole.log(<code>G\u00fcn\u00fcn ba\u015flang\u0131c\u0131: ${gununBaslangici.format('YYYY-MM-DD HH:mm:ss')}<\/code>); \/\/ 2023-10-27 00:00:00<\/code><\/pre>\n<h3>Immutable Yap\u0131<\/h3>\n<p>Day.js&#8217;in \u00f6nemli bir \u00f6zelli\u011fi, manip\u00fclasyon metotlar\u0131n\u0131n (add, subtract, set, startOf, endOf vb.) orijinal Day.js nesnesini de\u011fi\u015ftirmemesi, bunun yerine <em>yeni<\/em> bir Day.js nesnesi d\u00f6nd\u00fcrmesidir. Bu &#8220;immutable&#8221; yap\u0131, hatalar\u0131 azalt\u0131r ve kodun daha \u00f6ng\u00f6r\u00fclebilir olmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-javascript\">const orijinalTarih = dayjs('2023-01-01');\nconst manipuleEdilmisTarih = orijinalTarih.add(1, 'month');\n\nconsole.log(<code>Orijinal tarih: ${orijinalTarih.format('YYYY-MM-DD')}<\/code>);     \/\/ 2023-01-01\nconsole.log(<code>Manip\u00fcle edilmi\u015f tarih: ${manipuleEdilmisTarih.format('YYYY-MM-DD')}<\/code>); \/\/ 2023-02-01\n\n\/\/ Orijinal nesne de\u011fi\u015fmedi\nconsole.log(orijinalTarih.isSame(dayjs('2023-01-01'))); \/\/ true<\/code><\/pre>\n<p>Bu \u00f6zellik, \u00f6zellikle karma\u015f\u0131k tarih i\u015flemleri yaparken veya bir Day.js nesnesini birden fazla yerde kullan\u0131rken \u00e7ok faydal\u0131d\u0131r.<\/p>\n<h2>Tarih ve Saatleri G\u00f6r\u00fcnt\u00fcleme (Displaying\/Formatting)<\/h2>\n<p>Day.js, tarih ve saatleri okunabilir string&#8217;lere d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in kapsaml\u0131 formatlama se\u00e7enekleri sunar.<\/p>\n<h3>Formatlama (Formatting)<\/h3>\n<p><code>format()<\/code> metodu, \u00e7e\u015fitli format token&#8217;lar\u0131 kullanarak istedi\u011finiz \u00e7\u0131kt\u0131y\u0131 elde etmenizi sa\u011flar.<\/p>\n<pre><code class=\"language-javascript\">const simdi = dayjs(); \/\/ \u00d6rn: 2023-10-27 16:45:30\n\nconsole.log(simdi.format()); \/\/ ISO 8601 format\u0131 (varsay\u0131lan): 2023-10-27T16:45:30+03:00\n\nconsole.log(simdi.format('YYYY-MM-DD')); \/\/ Y\u0131l-Ay-G\u00fcn: 2023-10-27\nconsole.log(simdi.format('DD\/MM\/YYYY HH:mm:ss')); \/\/ G\u00fcn\/Ay\/Y\u0131l Saat:Dakika:Saniye: 27\/10\/2023 16:45:30\nconsole.log(simdi.format('MMMM D, YYYY h:mm A')); \/\/ Ay Ad\u0131 G\u00fcn, Y\u0131l Saat:Dakika AM\/PM: Ekim 27, 2023 4:45 PM\nconsole.log(simdi.format('dddd [saat] H:mm')); \/\/ Haftan\u0131n G\u00fcn\u00fc saat Saat:Dakika: Cuma saat 16:45\nconsole.log(simdi.format('[Bug\u00fcn] dddd, MMMM Do YYYY')); \/\/ Bug\u00fcn Cuma, Ekim 27. 2023<\/code><\/pre>\n<p><strong>Yayg\u0131n Format Token&#8217;lar\u0131:<\/strong><\/p>\n<p>*   <strong>Y\u0131l:<\/strong><br \/>\n    *   <code>YYYY<\/code>: 4 haneli y\u0131l (2023)<br \/>\n    *   <code>YY<\/code>: 2 haneli y\u0131l (23)<br \/>\n*   <strong>Ay:<\/strong><br \/>\n    *   <code>MMMM<\/code>: Tam ay ad\u0131 (Ekim)<br \/>\n    *   <code>MMM<\/code>: K\u0131salt\u0131lm\u0131\u015f ay ad\u0131 (Eki)<br \/>\n    *   <code>MM<\/code>: 2 haneli ay (01-12)<br \/>\n    *   <code>M<\/code>: 1 veya 2 haneli ay (1-12)<br \/>\n*   <strong>G\u00fcn:<\/strong><br \/>\n    *   <code>DD<\/code>: 2 haneli g\u00fcn (01-31)<br \/>\n    *   <code>D<\/code>: 1 veya 2 haneli g\u00fcn (1-31)<br \/>\n    *   <code>dddd<\/code>: Tam haftan\u0131n g\u00fcn\u00fc (Cuma)<br \/>\n    *   <code>ddd<\/code>: K\u0131salt\u0131lm\u0131\u015f haftan\u0131n g\u00fcn\u00fc (Cum)<br \/>\n    *   <code>dd<\/code>: Minimum haftan\u0131n g\u00fcn\u00fc (Cu)<br \/>\n    *   <code>d<\/code>: Haftan\u0131n g\u00fcn\u00fc (0-6, Pazar=0)<br \/>\n    *   <code>Do<\/code>: S\u0131ra eki ile g\u00fcn (27.)<br \/>\n*   <strong>Saat:<\/strong><br \/>\n    *   <code>HH<\/code>: 24 saat format\u0131nda 2 haneli saat (00-23)<br \/>\n    *   <code>H<\/code>: 24 saat format\u0131nda 1 veya 2 haneli saat (0-23)<br \/>\n    *   <code>hh<\/code>: 12 saat format\u0131nda 2 haneli saat (01-12)<br \/>\n    *   <code>h<\/code>: 12 saat format\u0131nda 1 veya 2 haneli saat (1-12)<br \/>\n    *   <code>A<\/code>: B\u00fcy\u00fck harf AM\/PM (AM\/PM)<br \/>\n    *   <code>a<\/code>: K\u00fc\u00e7\u00fck harf am\/pm (am\/pm)<br \/>\n*   <strong>Dakika:<\/strong><br \/>\n    *   <code>mm<\/code>: 2 haneli dakika (00-59)<br \/>\n    *   <code>m<\/code>: 1 veya 2 haneli dakika (0-59)<br \/>\n*   <strong>Saniye:<\/strong><br \/>\n    *   <code>ss<\/code>: 2 haneli saniye (00-59)<br \/>\n    *   <code>s<\/code>: 1 veya 2 haneli saniye (0-59)<br \/>\n*   <strong>Milisaniye:<\/strong><br \/>\n    *   <code>SSS<\/code>: 3 haneli milisaniye (000-999)<br \/>\n*   <strong>Zaman Dilimi:<\/strong><br \/>\n    *   <code>Z<\/code>: Zaman dilimi ofseti (+03:00)<br \/>\n    *   <code>ZZ<\/code>: Zaman dilimi ofseti (+0300)<br \/>\n*   <strong>K\u00f6\u015feli Parantez:<\/strong><br \/>\n    *   <code>[metin]<\/code>: K\u00f6\u015feli parantez i\u00e7indeki metin do\u011frudan \u00e7\u0131kt\u0131ya yaz\u0131l\u0131r.<\/p>\n<h3>G\u00f6receli Zaman (Relative Time)<\/h3>\n<p>&#8220;X dakika \u00f6nce&#8221;, &#8220;Yar\u0131n&#8221;, &#8220;Ge\u00e7en hafta&#8221; gibi g\u00f6receli zaman ifadeleri, kullan\u0131c\u0131 dostu aray\u00fczler i\u00e7in \u00e7ok \u00f6nemlidir. Day.js&#8217;in <code>RelativeTime<\/code> eklentisi bu \u00f6zelli\u011fi sa\u011flar.<\/p>\n<p>Eklentiyi y\u00fckleyin:<\/p>\n<pre><code class=\"language-javascript\">import dayjs from 'dayjs';\nimport relativeTime from 'dayjs\/plugin\/relativeTime';\nimport 'dayjs\/locale\/tr'; \/\/ T\u00fcrk\u00e7e dil deste\u011fi i\u00e7in\n\ndayjs.extend(relativeTime);\ndayjs.locale('tr'); \/\/ Yerel ayar\u0131 T\u00fcrk\u00e7e olarak ayarla<\/code><\/pre>\n<p>Kullan\u0131m:<\/p>\n<pre><code class=\"language-javascript\">const simdi = dayjs();\nconst besDakikaOnce = simdi.subtract(5, 'minute');\nconst yediGunSonra = simdi.add(7, 'day');\nconst ikiAyOnce = simdi.subtract(2, 'month');\n\nconsole.log(<code>5 dakika \u00f6nce: ${besDakikaOnce.fromNow()}<\/code>); \/\/ 5 dakika \u00f6nce\nconsole.log(<code>7 g\u00fcn sonra: ${yediGunSonra.fromNow()}<\/code>);   \/\/ 7 g\u00fcn sonra (veya bir hafta i\u00e7inde)\nconsole.log(<code>2 ay \u00f6nce: ${ikiAyOnce.fromNow()}<\/code>);       \/\/ 2 ay \u00f6nce\n\nconst gelecekTarih = dayjs('2024-05-15');\nconsole.log(<code>Gelecek tarih: ${gelecekTarih.fromNow()}<\/code>); \/\/ 7 ay sonra (veya benzeri)\n\n\/\/ Belirli bir tarihe g\u00f6re g\u00f6receli zaman\nconst referansTarih = dayjs('2023-01-01');\nconst karsilastirilacakTarih = dayjs('2023-01-10');\nconsole.log(<code>${karsilastirilacakTarih.from(referansTarih)}<\/code>); \/\/ 9 g\u00fcn sonra\nconsole.log(<code>${referansTarih.to(karsilastirilacakTarih)}<\/code>);   \/\/ 9 g\u00fcn \u00f6nce (bu durumda \"in 9 days\" \u00e7\u0131kt\u0131s\u0131 beklenir, locale \u00f6nemli)\n\/\/ Not: from() ve to() metodlar\u0131, varsay\u0131lan olarak mevcut zamana g\u00f6re de\u011fil, parametre olarak verilen zamana g\u00f6re g\u00f6receli zaman\u0131 hesaplar.\n\/\/ fromNow() ve toNow() ise mevcut zamana g\u00f6re hesaplar.<\/code><\/pre>\n<h3>Zaman Farklar\u0131 (Difference)<\/h3>\n<p>\u0130ki Day.js nesnesi aras\u0131ndaki fark\u0131 belirli bir birim cinsinden almak i\u00e7in <code>diff()<\/code> metodu kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-javascript\">const baslangicTarihi = dayjs('2023-10-01 10:00:00');\nconst bitisTarihi = dayjs('2023-10-27 15:30:00');\n\nconst gunFarki = bitisTarihi.diff(baslangicTarihi, 'day');\nconsole.log(<code>G\u00fcn fark\u0131: ${gunFarki} g\u00fcn<\/code>); \/\/ 26 g\u00fcn\n\nconst saatFarki = bitisTarihi.diff(baslangicTarihi, 'hour');\nconsole.log(<code>Saat fark\u0131: ${saatFarki} saat<\/code>); \/\/ 617 saat\n\nconst dakikaFarki = bitisTarihi.diff(baslangicTarihi, 'minute');\nconsole.log(<code>Dakika fark\u0131: ${dakikaFarki} dakika<\/code>); \/\/ 37050 dakika\n\n\/\/ Ondal\u0131kl\u0131 de\u011fer almak i\u00e7in \u00fc\u00e7\u00fcnc\u00fc parametre 'true'\nconst gunFarkiOndalikli = bitisTarihi.diff(baslangicTarihi, 'day', true);\nconsole.log(<code>G\u00fcn fark\u0131 (ondal\u0131kl\u0131): ${gunFarkiOndalikli.toFixed(2)} g\u00fcn<\/code>); \/\/ 26.23 g\u00fcn\n\nconst ayFarki = bitisTarihi.diff(baslangicTarihi, 'month');\nconsole.log(<code>Ay fark\u0131: ${ayFarki} ay<\/code>); \/\/ 0 ay (tam ay fark\u0131)<\/code><\/pre>\n<h3>Unix Timestamp ve JavaScript Date Nesnesine D\u00f6n\u00fc\u015f\u00fcm<\/h3>\n<p>Day.js nesnelerini di\u011fer formatlara d\u00f6n\u00fc\u015ft\u00fcrmek de kolayd\u0131r:<\/p>\n<p>*   <code>valueOf()<\/code>: Unix milisaniye zaman damgas\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <code>unix()<\/code>: Unix saniye zaman damgas\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <code>toDate()<\/code>: Yerel JavaScript <code>Date<\/code> nesnesine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-javascript\">const dayjsNesnesi = dayjs('2023-10-27 17:00:00');\n\nconst milisaniye = dayjsNesnesi.valueOf();\nconsole.log(<code>Milisaniye: ${milisaniye}<\/code>); \/\/ 1698418800000\n\nconst saniye = dayjsNesnesi.unix();\nconsole.log(<code>Saniye: ${saniye}<\/code>); \/\/ 1698418800\n\nconst jsDate = dayjsNesnesi.toDate();\nconsole.log(<code>JavaScript Date nesnesi: ${jsDate}<\/code>); \/\/ Fri Oct 27 2023 17:00:00 GMT+0300 (GMT+03:00)\nconsole.log(<code>JavaScript Date tipi: ${jsDate instanceof Date}<\/code>); \/\/ true<\/code><\/pre>\n<h2>Day.js Eklentileri (Plugins)<\/h2>\n<p>Day.js&#8217;in \u00e7ekirdek k\u00fct\u00fcphanesi olduk\u00e7a k\u00fc\u00e7\u00fck tutulmu\u015ftur. Bu, genellikle ihtiya\u00e7 duyulmayan \u00f6zelliklerin varsay\u0131lan olarak y\u00fcklenmemesi ve uygulaman\u0131z\u0131n boyutunun gereksiz yere artmamas\u0131 anlam\u0131na gelir. \u0130htiya\u00e7 duydu\u011funuz ek i\u015flevler i\u00e7in Day.js&#8217;in g\u00fc\u00e7l\u00fc eklenti sistemini kullanabilirsiniz. Daha \u00f6nce <code>CustomParseFormat<\/code> ve <code>RelativeTime<\/code> eklentilerini g\u00f6rd\u00fck.<\/p>\n<p>Bir eklentiyi kullanmak i\u00e7in \u00f6nce onu import etmeniz ve ard\u0131ndan <code>dayjs.extend()<\/code> metodunu kullanarak Day.js&#8217;e eklemeniz gerekir:<\/p>\n<pre><code class=\"language-javascript\">import dayjs from 'dayjs';\nimport pluginAdi from 'dayjs\/plugin\/pluginAdi'; \/\/ Eklentiyi import et\n\ndayjs.extend(pluginAdi); \/\/ Day.js'e eklentiyi y\u00fckle\n\n\/\/ Art\u0131k eklentinin sa\u011flad\u0131\u011f\u0131 metodlar\u0131 kullanabilirsiniz.<\/code><\/pre>\n<p>Baz\u0131 pop\u00fcler Day.js eklentileri:<\/p>\n<p>*   <strong><code>CustomParseFormat<\/code><\/strong>: \u00d6zel format string&#8217;lerini ayr\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong><code>RelativeTime<\/code><\/strong>: &#8220;X dakika \u00f6nce&#8221; gibi g\u00f6receli zaman ifadeleri olu\u015fturur.<br \/>\n*   <strong><code>LocalizedFormat<\/code><\/strong>: <code>LL<\/code>, <code>LLL<\/code>, <code>LLLL<\/code> gibi yerelle\u015ftirilmi\u015f format k\u0131saltmalar\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong><code>IsBetween<\/code><\/strong>: Bir tarihin ba\u015fka iki tarih aras\u0131nda olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<br \/>\n*   <strong><code>Timezone<\/code><\/strong>: Zaman dilimi d\u00f6n\u00fc\u015f\u00fcmlerini ve y\u00f6netimini sa\u011flar (\u00f6rne\u011fin, UTC&#8217;den yerel saate veya belirli bir zaman dilimine d\u00f6n\u00fc\u015ft\u00fcrme).<br \/>\n*   <strong><code>IsLeapYear<\/code><\/strong>: Bir y\u0131l\u0131n art\u0131k y\u0131l olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<br \/>\n*   <strong><code>Weekday<\/code><\/strong>: Haftan\u0131n g\u00fcn\u00fcn\u00fc 0-6 yerine 1-7 (Pazartesi=1) olarak d\u00f6nd\u00fcrme veya ayarlama imkan\u0131 sunar.<\/p>\n<p>Eklenti sistemi, Day.js&#8217;i esnek ve \u00f6l\u00e7eklenebilir k\u0131lar, b\u00f6ylece sadece ihtiyac\u0131n\u0131z olan \u00f6zellikleri y\u00fckleyerek uygulaman\u0131z\u0131n performans\u0131n\u0131 optimize edebilirsiniz.<\/p>\n<h2>Uygulama Senaryolar\u0131 ve \u0130pu\u00e7lar\u0131<\/h2>\n<p>Day.js&#8217;in sa\u011flad\u0131\u011f\u0131 yetenekler, bir\u00e7ok ger\u00e7ek d\u00fcnya uygulamas\u0131nda faydal\u0131d\u0131r:<\/p>\n<p>*   <strong>Form Giri\u015f Do\u011frulamas\u0131:<\/strong> Kullan\u0131c\u0131lar\u0131n tarih giri\u015flerini belirli bir formatta (\u00f6rne\u011fin, <code>DD\/MM\/YYYY<\/code>) girip girmedi\u011fini kontrol etmek ve ge\u00e7ersiz giri\u015flerde uyar\u0131 vermek i\u00e7in <code>dayjs(inputString, format).isValid()<\/code> kullan\u0131labilir.<br \/>\n*   <strong>Etkinlik Takvimleri ve Rezervasyon Sistemleri:<\/strong> Etkinliklerin ba\u015flang\u0131\u00e7 ve biti\u015f tarihlerini y\u00f6netmek, \u00e7ak\u0131\u015fmalar\u0131 kontrol etmek (<code>isSame<\/code>, <code>isBefore<\/code>, <code>isAfter<\/code>, <code>isBetween<\/code> eklentisi ile), tarihlere g\u00fcn\/hafta\/ay ekleyip \u00e7\u0131karmak (<code>add<\/code>, <code>subtract<\/code>) i\u00e7in Day.js idealdir.<br \/>\n*   <strong>Sosyal Medya ve Blog G\u00f6nderileri:<\/strong> G\u00f6nderi zamanlar\u0131n\u0131 &#8220;5 dakika \u00f6nce&#8221;, &#8220;2 saat \u00f6nce&#8221; gibi g\u00f6receli ifadelerle g\u00f6r\u00fcnt\u00fclemek i\u00e7in <code>RelativeTime<\/code> eklentisi kullan\u0131l\u0131r.<br \/>\n*   <strong>Zaman Dilimi Y\u00f6netimi:<\/strong> Farkl\u0131 co\u011frafi konumlardaki kullan\u0131c\u0131lar i\u00e7in do\u011fru zaman\u0131 g\u00f6stermek, sunucu taraf\u0131nda UTC olarak saklanan zaman damgalar\u0131n\u0131 kullan\u0131c\u0131n\u0131n yerel zaman dilimine d\u00f6n\u00fc\u015ft\u00fcrmek i\u00e7in <code>Timezone<\/code> eklentisi kritik \u00f6neme sahiptir.<br \/>\n*   <strong>Veri Raporlama ve Analiz:<\/strong> Belirli bir ay\u0131n ba\u015flang\u0131c\u0131ndan sonuna kadar olan verileri filtrelemek (<code>startOf<\/code>, <code>endOf<\/code>), iki tarih aras\u0131ndaki s\u00fcreyi hesaplamak (<code>diff<\/code>) veya verileri belirli bir formatta raporlamak (<code>format<\/code>) i\u00e7in Day.js kullan\u0131l\u0131r.<br \/>\n*   <strong>Geri Say\u0131m Sayac\u0131:<\/strong> Gelecekteki bir tarihe kadar kalan s\u00fcreyi (g\u00fcn, saat, dakika, saniye) dinamik olarak hesaplamak ve g\u00f6r\u00fcnt\u00fclemek i\u00e7in <code>diff()<\/code> metodu s\u00fcrekli olarak kullan\u0131labilir.<\/p>\n<p><strong>\u0130pu\u00e7lar\u0131:<\/strong><\/p>\n<p>*   <strong>Locale (Yerel Ayarlar) Kullan\u0131m\u0131:<\/strong> Tarih ve saatleri farkl\u0131 dillerde (\u00f6rne\u011fin ay adlar\u0131, haftan\u0131n g\u00fcnleri, g\u00f6receli zaman ifadeleri) g\u00f6r\u00fcnt\u00fclemek i\u00e7in Day.js&#8217;in yerel ayar deste\u011fini kullan\u0131n. <code>import 'dayjs\/locale\/tr'; dayjs.locale('tr');<\/code> gibi.<br \/>\n*   <strong>Eklentileri Ak\u0131ll\u0131ca Kullan\u0131n:<\/strong> Uygulaman\u0131z\u0131n boyutunu k\u00fc\u00e7\u00fck tutmak i\u00e7in sadece ihtiyac\u0131n\u0131z olan eklentileri y\u00fckleyin. Her eklentinin kendi import ifadesi oldu\u011funu unutmay\u0131n.<br \/>\n*   <strong>Immutable Yap\u0131y\u0131 Avantaja \u00c7evirin:<\/strong> Day.js nesneleri immutable oldu\u011fu i\u00e7in, bir tarih nesnesini de\u011fi\u015ftirdi\u011finizde her zaman yeni bir nesne d\u00f6nd\u00fc\u011f\u00fcn\u00fc unutmay\u0131n. Bu, zincirleme metot \u00e7a\u011fr\u0131lar\u0131n\u0131 kolayla\u015ft\u0131r\u0131r ve yan etkileri \u00f6nler.<br \/>\n*   <strong>Performans:<\/strong> Day.js, Moment.js&#8217;e g\u00f6re zaten \u00e7ok daha hafiftir. Ancak \u00e7ok say\u0131da tarih i\u015flemi yap\u0131yorsan\u0131z, gereksiz Day.js nesnesi olu\u015fturmaktan ka\u00e7\u0131nmak ve m\u00fcmk\u00fcnse tek bir Day.js nesnesi \u00fczerinde i\u015flem yapmak performans\u0131 art\u0131rabilir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>JavaScript&#8217;te tarih ve saatlerle \u00e7al\u0131\u015fmak, \u00f6zellikle karma\u015f\u0131k senaryolarda, zorlu ve hataya a\u00e7\u0131k bir g\u00f6rev olabilir. Day.js, hafif yap\u0131s\u0131, Moment.js ile uyumlu ve sezgisel API&#8217;si, g\u00fc\u00e7l\u00fc ayr\u0131\u015ft\u0131rma, do\u011frulama, manip\u00fclasyon ve formatlama yetenekleri sayesinde bu s\u00fcreci \u00f6nemli \u00f6l\u00e7\u00fcde basitle\u015ftirir. Eklenti sistemi sayesinde sadece ihtiyac\u0131n\u0131z olan \u00f6zellikleri y\u00fckleyerek uygulaman\u0131z\u0131n boyutunu optimize etmenize olanak tan\u0131r.<\/p>\n<p>Day.js&#8217;i projelerinize dahil ederek, tarih ve saat i\u015flemlerini daha g\u00fcvenilir, okunabilir ve y\u00f6netilebilir hale getirebilir, b\u00f6ylece geli\u015ftirme s\u00fcrecinizi h\u0131zland\u0131rabilir ve kullan\u0131c\u0131lar\u0131n\u0131za daha iyi bir deneyim sunabilirsiniz. \u0130ster basit bir tarih g\u00f6sterimi, ister karma\u015f\u0131k bir zaman dilimi d\u00f6n\u00fc\u015f\u00fcm\u00fc olsun, Day.js modern web geli\u015ftiricilerinin ara\u00e7 kutusunda vazge\u00e7ilmez bir yere sahiptir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Day.js ile JavaScript&#8217;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme\nGiri\u015f: Neden Day.js?\nModern web uygu","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[129],"tags":[],"class_list":{"0":"post-36337","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-javascript","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Day.js ile JavaScript&#039;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Day.js ile JavaScript&#039;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme\" \/>\n<meta property=\"og:description\" content=\"Day.js ile JavaScript&#039;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme Giri\u015f: Neden Day.js? Modern web uygu\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-13T19:40:47+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Day.js ile JavaScript&#8217;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme\",\"datePublished\":\"2025-12-13T19:40:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/\"},\"wordCount\":1991,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Javascript\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/\",\"name\":\"Day.js ile JavaScript'te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-13T19:40:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Day.js ile JavaScript&#8217;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Day.js ile JavaScript'te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/","og_locale":"tr_TR","og_type":"article","og_title":"Day.js ile JavaScript'te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme","og_description":"Day.js ile JavaScript'te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme Giri\u015f: Neden Day.js? Modern web uygu","og_url":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-13T19:40:47+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Day.js ile JavaScript&#8217;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme","datePublished":"2025-12-13T19:40:47+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/"},"wordCount":1991,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Javascript"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/","url":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/","name":"Day.js ile JavaScript'te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-13T19:40:47+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/day-js-ile-javascriptte-tarih-ve-saat-islemleri-ayristirma-dogrulama-manipulasyon-ve-goruntuleme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Day.js ile JavaScript&#8217;te Tarih ve Saat \u0130\u015flemleri: Ayr\u0131\u015ft\u0131rma, Do\u011frulama, Manip\u00fclasyon ve G\u00f6r\u00fcnt\u00fcleme"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36337"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36337\/revisions"}],"predecessor-version":[{"id":36338,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36337\/revisions\/36338"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}