{"id":40860,"date":"2026-03-01T21:40:56","date_gmt":"2026-03-01T18:40:56","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=40860"},"modified":"2026-03-01T21:40:56","modified_gmt":"2026-03-01T18:40:56","slug":"javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/","title":{"rendered":"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f"},"content":{"rendered":"<p><body><\/p>\n<h2>JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f<\/h2>\n<p>Web uygulamalar\u0131n\u0131n ve modern yaz\u0131l\u0131mlar\u0131n temel ta\u015flar\u0131ndan biri, zaman ve tarih bilgilerini do\u011fru bir \u015fekilde y\u00f6netme yetene\u011fidir. Kullan\u0131c\u0131 aray\u00fczlerinde tarih se\u00e7icilerden, arka u\u00e7 sistemlerinde olay zaman \u00e7izelgelerine, finansal i\u015flemlerin kay\u0131tlar\u0131ndan, veri analizlerinde zaman serilerine kadar pek \u00e7ok alanda zaman bilgisi kritik \u00f6neme sahiptir. JavaScript, bu ihtiyac\u0131 kar\u015f\u0131lamak \u00fczere yerle\u015fik bir <code>Date<\/code> nesnesi sunar. Bu nesne, tarih ve saat bilgilerini olu\u015fturmak, almak, ayarlamak ve bi\u00e7imlendirmek i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7 setidir. Ancak, zaman dilimleri, yerel ayarlar ve farkl\u0131 tarih formatlar\u0131 gibi karma\u015f\u0131kl\u0131klar nedeniyle <code>Date<\/code> nesnesini do\u011fru bir \u015fekilde anlamak ve kullanmak bazen zorlay\u0131c\u0131 olabilir. Bu makalede, JavaScript <code>Date<\/code> nesnesinin derinliklerine inecek, nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131, sundu\u011fu metotlar\u0131 ve kar\u015f\u0131la\u015f\u0131labilecek yayg\u0131n sorunlar\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Amac\u0131m\u0131z, geli\u015ftiricilere <code>Date<\/code> nesnesiyle zaman\u0131 etkin bir \u015fekilde y\u00f6netmeleri i\u00e7in kapsaml\u0131 bir rehber sunmakt\u0131r.<\/p>\n<h3>Date Nesnesine Genel Bak\u0131\u015f<\/h3>\n<p>JavaScript&#8217;teki <code>Date<\/code> nesnesi, belirli bir zaman noktas\u0131n\u0131 (tarih ve saat) temsil eder. Bu zaman noktas\u0131, 1 Ocak 1970 UTC (Coordinated Universal Time) tarihinden itibaren ge\u00e7en milisaniye say\u0131s\u0131 olarak depolan\u0131r. Bu referans noktas\u0131na &#8220;Unix Epoch&#8221; ad\u0131 verilir ve bir\u00e7ok programlama dilinde zaman\u0131n temelini olu\u015fturur. <code>Date<\/code> nesnesi, bu milisaniye de\u011ferini insan taraf\u0131ndan okunabilir tarih ve saat formatlar\u0131na d\u00f6n\u00fc\u015ft\u00fcrme ve bu de\u011ferler \u00fczerinde \u00e7e\u015fitli i\u015flemler yapma yetene\u011fi sa\u011flar. Bir <code>Date<\/code> nesnesi olu\u015fturdu\u011funuzda, asl\u0131nda bir zaman an\u0131n\u0131n anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc yakalars\u0131n\u0131z ve bu anl\u0131k g\u00f6r\u00fcnt\u00fc \u00fczerinde i\u015flem yapars\u0131n\u0131z.<\/p>\n<h3>Date Nesnesi Olu\u015fturma<\/h3>\n<p><code>Date<\/code> nesnesi, <code>new Date()<\/code> yap\u0131c\u0131 (constructor) metodu kullan\u0131larak \u00e7e\u015fitli \u015fekillerde olu\u015fturulabilir. Farkl\u0131 kullan\u0131m senaryolar\u0131na g\u00f6re d\u00f6rt temel olu\u015fturma y\u00f6ntemi bulunmaktad\u0131r:<\/p>\n<h4>Parametresiz Olu\u015fturma: Ge\u00e7erli Tarih ve Saat<\/h4>\n<p>Parametresiz olarak \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda, <code>new Date()<\/code>, nesnenin olu\u015fturuldu\u011fu anki yerel sistemin ge\u00e7erli tarih ve saatini i\u00e7eren bir <code>Date<\/code> nesnesi d\u00f6nd\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-javascript\">const simdikiZaman = new Date();\nconsole.log(simdikiZaman); \/\/ \u00d6rn: Mon Jul 17 2023 10:30:00 GMT+0300 (GMT+03:00)<\/code><\/pre>\n<h4>Say\u0131sal Parametrelerle Olu\u015fturma: Belirli Bir Tarih<\/h4>\n<p>Y\u0131l, ay, g\u00fcn, saat, dakika, saniye ve milisaniye gibi say\u0131sal de\u011ferler sa\u011flayarak belirli bir tarih ve saati olu\u015fturabilirsiniz. \u00d6nemli bir nokta, ay parametresinin 0&#8217;dan (Ocak) 11&#8217;e (Aral\u0131k) kadar indekslenmi\u015f olmas\u0131d\u0131r. Di\u011fer t\u00fcm parametreler 1&#8217;den ba\u015flar.<\/p>\n<pre><code class=\"language-javascript\">\/\/ Y\u0131l, Ay, G\u00fcn\nconst belirliTarih = new Date(2023, 6, 17); \/\/ 17 Temmuz 2023 (Ay 6 = Temmuz)\nconsole.log(belirliTarih); \/\/ \u00d6rn: Mon Jul 17 2023 00:00:00 GMT+0300 (GMT+03:00)\n\n\/\/ Y\u0131l, Ay, G\u00fcn, Saat, Dakika, Saniye, Milisaniye\nconst tamZaman = new Date(2023, 6, 17, 14, 30, 45, 123);\nconsole.log(tamZaman); \/\/ \u00d6rn: Mon Jul 17 2023 14:30:45 GMT+0300 (GMT+03:00)<\/code><\/pre>\n<p>E\u011fer t\u00fcm parametreler sa\u011flanmazsa, eksik olanlar varsay\u0131lan de\u011ferlere ayarlan\u0131r (g\u00fcn 1, saat 0, vb.).<\/p>\n<h4>Milisaniye Cinsinden Olu\u015fturma: Unix Epoch&#8217;tan \u0130tibaren<\/h4>\n<p>Unix Epoch&#8217;tan (1 Ocak 1970 UTC) itibaren ge\u00e7en milisaniye say\u0131s\u0131n\u0131 bir say\u0131 olarak sa\u011flayarak bir <code>Date<\/code> nesnesi olu\u015fturabilirsiniz. Bu, genellikle tarihleri depolama veya a\u011f \u00fczerinden iletme gibi durumlarda kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-javascript\">const milisaniyeDegeri = 1678886400000; \/\/ 15 Mart 2023 00:00:00 UTC\nconst epochTarihi = new Date(milisaniyeDegeri);\nconsole.log(epochTarihi); \/\/ \u00d6rn: Wed Mar 15 2023 03:00:00 GMT+0300 (GMT+03:00) - Yerel zaman dilimine g\u00f6re ayarlan\u0131r<\/code><\/pre>\n<h4>Tarih Dizesiyle Olu\u015fturma: String Formatlar<\/h4>\n<p>Bir tarih dizesi (string) sa\u011flayarak da bir <code>Date<\/code> nesnesi olu\u015fturulabilir. JavaScript motorlar\u0131, bu dizeleri ayr\u0131\u015ft\u0131rmaya \u00e7al\u0131\u015f\u0131r. Yayg\u0131n olarak kabul g\u00f6ren formatlar aras\u0131nda ISO 8601 (&#8220;YYYY-MM-DDTHH:mm:ss.sssZ&#8221;), k\u0131sa tarih formatlar\u0131 (&#8220;MM\/DD\/YYYY&#8221; veya &#8220;YYYY-MM-DD&#8221;) ve uzun tarih formatlar\u0131 (&#8220;Month Day, Year HH:mm:ss&#8221;) bulunur. Ancak, taray\u0131c\u0131lar ve JavaScript motorlar\u0131 aras\u0131nda dize ayr\u0131\u015ft\u0131rma davran\u0131\u015f\u0131nda farkl\u0131l\u0131klar olabilece\u011fi i\u00e7in bu y\u00f6ntem dikkatli kullan\u0131lmal\u0131d\u0131r. ISO 8601 format\u0131 en g\u00fcvenilir olan\u0131d\u0131r.<\/p>\n<pre><code class=\"language-javascript\">const isoTarih = new Date(\"2023-07-17T15:00:00Z\"); \/\/ UTC saati\nconsole.log(isoTarih); \/\/ \u00d6rn: Mon Jul 17 2023 18:00:00 GMT+0300 (GMT+03:00) - Yerel zaman dilimine d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr\n\nconst kisaTarih = new Date(\"07\/17\/2023\");\nconsole.log(kisaTarih); \/\/ \u00d6rn: Mon Jul 17 2023 00:00:00 GMT+0300 (GMT+03:00)\n\nconst uzunTarih = new Date(\"July 17, 2023 15:30:00\");\nconsole.log(uzunTarih); \/\/ \u00d6rn: Mon Jul 17 2023 15:30:00 GMT+0300 (GMT+03:00)<\/code><\/pre>\n<p>Ge\u00e7ersiz bir tarih dizesi sa\u011flan\u0131rsa, <code>new Date()<\/code> &#8220;Invalid Date&#8221; d\u00f6nd\u00fcr\u00fcr. Bu durumu kontrol etmek \u00f6nemlidir.<\/p>\n<pre><code class=\"language-javascript\">const gecersizTarih = new Date(\"Hello World\");\nconsole.log(gecersizTarih); \/\/ Invalid Date\nconsole.log(isNaN(gecersizTarih.getTime())); \/\/ true<\/code><\/pre>\n<h3>Date Nesnesinin Metotlar\u0131: Zaman\u0131 Alma (Get Metotlar\u0131)<\/h3>\n<p><code>Date<\/code> nesnesi, bir tarihin farkl\u0131 bile\u015fenlerini (y\u0131l, ay, g\u00fcn, saat vb.) almak i\u00e7in \u00e7e\u015fitli &#8220;get&#8221; metotlar\u0131 sunar. Bu metotlar, genellikle yerel saat dilimine g\u00f6re de\u011ferler d\u00f6nd\u00fcr\u00fcr. Ayr\u0131ca, zaman dilimi ba\u011f\u0131ms\u0131z de\u011ferler almak i\u00e7in UTC versiyonlar\u0131 da mevcuttur.<\/p>\n<h4>Yerel Zaman Bile\u015fenleri<\/h4>\n<ul>\n<li><code>getFullYear()<\/code>: D\u00f6rt basamakl\u0131 y\u0131l\u0131 d\u00f6nd\u00fcr\u00fcr (\u00f6rn: 2023).<\/li>\n<li><code>getMonth()<\/code>: Ay\u0131 0-11 aras\u0131nda bir say\u0131 olarak d\u00f6nd\u00fcr\u00fcr (0: Ocak, 11: Aral\u0131k).<\/li>\n<li><code>getDate()<\/code>: Ay\u0131n g\u00fcn\u00fcn\u00fc 1-31 aras\u0131nda bir say\u0131 olarak d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>getDay()<\/code>: Haftan\u0131n g\u00fcn\u00fcn\u00fc 0-6 aras\u0131nda bir say\u0131 olarak d\u00f6nd\u00fcr\u00fcr (0: Pazar, 6: Cumartesi).<\/li>\n<li><code>getHours()<\/code>: Saati 0-23 aras\u0131nda bir say\u0131 olarak d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>getMinutes()<\/code>: Dakikay\u0131 0-59 aras\u0131nda bir say\u0131 olarak d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>getSeconds()<\/code>: Saniyeyi 0-59 aras\u0131nda bir say\u0131 olarak d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>getMilliseconds()<\/code>: Milisaniyeyi 0-999 aras\u0131nda bir say\u0131 olarak d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>getTime()<\/code>: Unix Epoch&#8217;tan (1 Ocak 1970 UTC) itibaren ge\u00e7en milisaniye say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>getTimezoneOffset()<\/code>: Yerel saat dilimi ile UTC aras\u0131ndaki fark\u0131 dakika cinsinden d\u00f6nd\u00fcr\u00fcr. (\u00f6rn: GMT+3 i\u00e7in -180 d\u00f6ner, \u00e7\u00fcnk\u00fc yerel saat UTC&#8217;den 3 saat ileridedir.)<\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">const tarih = new Date(\"2023-07-17T10:30:00\"); \/\/ Yerel zaman dilimi\n\nconsole.log(\"Y\u0131l:\", tarih.getFullYear());      \/\/ 2023\nconsole.log(\"Ay:\", tarih.getMonth());         \/\/ 6 (Temmuz)\nconsole.log(\"G\u00fcn:\", tarih.getDate());         \/\/ 17\nconsole.log(\"Haftan\u0131n G\u00fcn\u00fc:\", tarih.getDay()); \/\/ 1 (Pazartesi)\nconsole.log(\"Saat:\", tarih.getHours());       \/\/ 10\nconsole.log(\"Dakika:\", tarih.getMinutes());    \/\/ 30\nconsole.log(\"Saniye:\", tarih.getSeconds());    \/\/ 0\nconsole.log(\"Milisaniye:\", tarih.getMilliseconds()); \/\/ 0\nconsole.log(\"Epoch Milisaniye:\", tarih.getTime()); \/\/ 1689588600000\nconsole.log(\"Zaman Dilimi Ofseti (dakika):\", tarih.getTimezoneOffset()); \/\/ \u00d6rn: -180 (GMT+3 i\u00e7in)<\/code><\/pre>\n<h4>UTC Zaman Bile\u015fenleri<\/h4>\n<p><code>getUTC...()<\/code> metotlar\u0131, yerel zaman diliminden ba\u011f\u0131ms\u0131z olarak, Coordinated Universal Time (UTC) de\u011ferlerini d\u00f6nd\u00fcr\u00fcr. Bu, \u00f6zellikle farkl\u0131 zaman dilimlerindeki kullan\u0131c\u0131larla \u00e7al\u0131\u015f\u0131rken veya tarihleri sunucuda standart bir formatta saklarken \u00e7ok \u00f6nemlidir.<\/p>\n<ul>\n<li><code>getUTCFullYear()<\/code><\/li>\n<li><code>getUTCMonth()<\/code><\/li>\n<li><code>getUTCDate()<\/code><\/li>\n<li><code>getUTCDay()<\/code><\/li>\n<li><code>getUTCHours()<\/code><\/li>\n<li><code>getUTCMinutes()<\/code><\/li>\n<li><code>getUTCSeconds()<\/code><\/li>\n<li><code>getUTCMilliseconds()<\/code><\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">const tarihUTC = new Date(\"2023-07-17T10:30:00Z\"); \/\/ Z, UTC oldu\u011funu belirtir\n\nconsole.log(\"UTC Y\u0131l:\", tarihUTC.getUTCFullYear()); \/\/ 2023\nconsole.log(\"UTC Ay:\", tarihUTC.getUTCMonth());   \/\/ 6 (Temmuz)\nconsole.log(\"UTC G\u00fcn:\", tarihUTC.getUTCDate());   \/\/ 17\nconsole.log(\"UTC Saat:\", tarihUTC.getUTCHours()); \/\/ 10<\/code><\/pre>\n<h3>Date Nesnesinin Metotlar\u0131: Zaman\u0131 Ayarlama (Set Metotlar\u0131)<\/h3>\n<p><code>Date<\/code> nesnesinin &#8220;set&#8221; metotlar\u0131, bir <code>Date<\/code> nesnesinin tarih ve saat bile\u015fenlerini de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Bu metotlar, orijinal <code>Date<\/code> nesnesini do\u011frudan de\u011fi\u015ftirir ve genellikle g\u00fcncellenmi\u015f Epoch milisaniye de\u011ferini d\u00f6nd\u00fcr\u00fcr.<\/p>\n<h4>Yerel Zaman Bile\u015fenlerini Ayarlama<\/h4>\n<ul>\n<li><code>setFullYear(y\u0131l, [ay], [g\u00fcn])<\/code>: Y\u0131l\u0131 ayarlar. \u0130ste\u011fe ba\u011fl\u0131 olarak ay ve g\u00fcn de ayarlanabilir.<\/li>\n<li><code>setMonth(ay, [g\u00fcn])<\/code>: Ay\u0131 ayarlar (0-11). \u0130ste\u011fe ba\u011fl\u0131 olarak g\u00fcn de ayarlanabilir.<\/li>\n<li><code>setDate(g\u00fcn)<\/code>: Ay\u0131n g\u00fcn\u00fcn\u00fc ayarlar (1-31).<\/li>\n<li><code>setHours(saat, [dakika], [saniye], [milisaniye])<\/code>: Saati ayarlar. \u0130ste\u011fe ba\u011fl\u0131 olarak di\u011fer zaman bile\u015fenleri de ayarlanabilir.<\/li>\n<li><code>setMinutes(dakika, [saniye], [milisaniye])<\/code>: Dakikay\u0131 ayarlar.<\/li>\n<li><code>setSeconds(saniye, [milisaniye])<\/code>: Saniyeyi ayarlar.<\/li>\n<li><code>setMilliseconds(milisaniye)<\/code>: Milisaniyeyi ayarlar.<\/li>\n<li><code>setTime(milisaniye)<\/code>: Unix Epoch&#8217;tan itibaren ge\u00e7en milisaniye say\u0131s\u0131n\u0131 ayarlayarak t\u00fcm tarihi ve saati de\u011fi\u015ftirir.<\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">const tarihDegistir = new Date(); \/\/ \u015eu anki tarih ve saat\nconsole.log(\"Ba\u015flang\u0131\u00e7:\", tarihDegistir);\n\ntarihDegistir.setFullYear(2025);\ntarihDegistir.setMonth(0); \/\/ Ocak\ntarihDegistir.setDate(1);  \/\/ Ay\u0131n 1. g\u00fcn\u00fc\nconsole.log(\"Y\u0131l\/Ay\/G\u00fcn Ayarland\u0131:\", tarihDegistir);\n\ntarihDegistir.setHours(9, 0, 0, 0); \/\/ Sabah 9:00:00.000\nconsole.log(\"Saat Ayarland\u0131:\", tarihDegistir);\n\n\/\/ setTime ile do\u011frudan milisaniye de\u011feri \u00fczerinden ayarlama\nconst yeniEpochMilisaniye = 1704067200000; \/\/ 1 Ocak 2024 00:00:00 UTC\ntarihDegistir.setTime(yeniEpochMilisaniye);\nconsole.log(\"setTime ile Ayarland\u0131:\", tarihDegistir);<\/code><\/pre>\n<p>Set metotlar\u0131, ge\u00e7erli aral\u0131\u011f\u0131n d\u0131\u015f\u0131ndaki de\u011ferlerle \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda otomatik olarak tarihi ayarlar. \u00d6rne\u011fin, <code>setDate(32)<\/code> \u015eubat ay\u0131nda bir sonraki aya ge\u00e7er.<\/p>\n<h4>UTC Zaman Bile\u015fenlerini Ayarlama<\/h4>\n<p>Benzer \u015fekilde, <code>setUTC...()<\/code> metotlar\u0131, UTC zaman diliminde tarih ve saat bile\u015fenlerini ayarlamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<ul>\n<li><code>setUTCFullYear()<\/code><\/li>\n<li><code>setUTCMonth()<\/code><\/li>\n<li><code>setUTCDate()<\/code><\/li>\n<li><code>setUTCHours()<\/code><\/li>\n<li><code>setUTCMinutes()<\/code><\/li>\n<li><code>setUTCSeconds()<\/code><\/li>\n<li><code>setUTCMilliseconds()<\/code><\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">const tarihUTCdegistir = new Date();\nconsole.log(\"Ba\u015flang\u0131\u00e7 UTC:\", tarihUTCdegistir.toUTCString());\n\ntarihUTCdegistir.setUTCFullYear(2024);\ntarihUTCdegistir.setUTCMonth(11); \/\/ Aral\u0131k\ntarihUTCdegistir.setUTCDate(25);  \/\/ 25. g\u00fcn\nconsole.log(\"UTC Y\u0131l\/Ay\/G\u00fcn Ayarland\u0131:\", tarihUTCdegistir.toUTCString());<\/code><\/pre>\n<h3>Date Nesnesinin Metotlar\u0131: Tarih ve Saati Bi\u00e7imlendirme<\/h3>\n<p><code>Date<\/code> nesnesi, tarih ve saat bilgilerini farkl\u0131 dize formatlar\u0131nda sunmak i\u00e7in \u00e7e\u015fitli metotlar sa\u011flar. Bu metotlar, genellikle hata ay\u0131klama, kullan\u0131c\u0131 aray\u00fcz\u00fcnde g\u00f6r\u00fcnt\u00fcleme veya API&#8217;lerle ileti\u015fim kurma gibi durumlarda kullan\u0131l\u0131r.<\/p>\n<h4>Temel Bi\u00e7imlendirme Metotlar\u0131<\/h4>\n<ul>\n<li><code>toString()<\/code>: Tam tarih ve saat dizesini d\u00f6nd\u00fcr\u00fcr (yerel zaman dilimi ve zaman dilimi ofseti dahil).<\/li>\n<li><code>toDateString()<\/code>: Tarih k\u0131sm\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr (\u00f6rn: &#8220;Mon Jul 17 2023&#8221;).<\/li>\n<li><code>toTimeString()<\/code>: Saat k\u0131sm\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr (\u00f6rn: &#8220;10:30:00 GMT+0300 (GMT+03:00)&#8221;).<\/li>\n<li><code>toISOString()<\/code>: ISO 8601 format\u0131nda bir dize d\u00f6nd\u00fcr\u00fcr (\u00f6rn: &#8220;2023-07-17T07:30:00.000Z&#8221;). Bu format her zaman UTC&#8217;yi temsil eder ve sunucular aras\u0131 ileti\u015fimde veya depolamada \u00f6nerilir.<\/li>\n<li><code>toJSON()<\/code>: <code>toISOString()<\/code> ile ayn\u0131 dizeyi d\u00f6nd\u00fcr\u00fcr ve genellikle JSON serile\u015ftirmesi s\u0131ras\u0131nda otomatik olarak \u00e7a\u011fr\u0131l\u0131r.<\/li>\n<li><code>toUTCString()<\/code>: UTC&#8217;ye g\u00f6re bi\u00e7imlendirilmi\u015f bir tarih dizesi d\u00f6nd\u00fcr\u00fcr (\u00f6rn: &#8220;Mon, 17 Jul 2023 07:30:00 GMT&#8221;).<\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">const tarihBi\u00e7imlendir = new Date(\"2023-07-17T10:30:00\"); \/\/ Yerel zaman dilimi\n\nconsole.log(\"toString():\", tarihBi\u00e7imlendir.toString());\nconsole.log(\"toDateString():\", tarihBi\u00e7imlendir.toDateString());\nconsole.log(\"toTimeString():\", tarihBi\u00e7imlendir.toTimeString());\nconsole.log(\"toISOString():\", tarihBi\u00e7imlendir.toISOString());\nconsole.log(\"toJSON():\", tarihBi\u00e7imlendir.toJSON());\nconsole.log(\"toUTCString():\", tarihBi\u00e7imlendir.toUTCString());<\/code><\/pre>\n<h4>Yerel Ayarlara Duyarl\u0131 Bi\u00e7imlendirme Metotlar\u0131<\/h4>\n<p>Bu metotlar, kullan\u0131c\u0131n\u0131n yerel ayarlar\u0131n\u0131 (dil, b\u00f6lge) dikkate alarak daha okunabilir ve k\u00fclt\u00fcrel olarak uygun bi\u00e7imlendirmeler sa\u011flar.<\/p>\n<ul>\n<li><code>toLocaleDateString([locale], [options])<\/code>: Yerel ayara duyarl\u0131 tarih dizesi d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>toLocaleTimeString([locale], [options])<\/code>: Yerel ayara duyarl\u0131 saat dizesi d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>toLocaleString([locale], [options])<\/code>: Yerel ayara duyarl\u0131 tarih ve saat dizesi d\u00f6nd\u00fcr\u00fcr.<\/li>\n<\/ul>\n<p><code>locale<\/code> parametresi, &#8220;tr-TR&#8221; veya &#8220;en-US&#8221; gibi bir dil etiketi olabilir. <code>options<\/code> parametresi ise bi\u00e7imlendirme se\u00e7eneklerini belirten bir nesnedir (\u00f6rn: <code>{ weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }<\/code>).<\/p>\n<pre><code class=\"language-javascript\">const yerelTarih = new Date();\n\nconsole.log(\"Varsay\u0131lan Yerel:\", yerelTarih.toLocaleString()); \/\/ \u00d6rn: 17.07.2023 10:30:00\nconsole.log(\"T\u00fcrk\u00e7e Tarih:\", yerelTarih.toLocaleDateString(\"tr-TR\")); \/\/ 17.07.2023\nconsole.log(\"\u0130ngilizce Saat:\", yerelTarih.toLocaleTimeString(\"en-US\", { hour: '2-digit', minute: '2-digit' })); \/\/ 10:30 AM\n\nconst se\u00e7enekler = {\n    weekday: 'long',\n    year: 'numeric',\n    month: 'long',\n    day: 'numeric',\n    hour: '2-digit',\n    minute: '2-digit',\n    second: '2-digit',\n    timeZoneName: 'short'\n};\n\nconsole.log(\"Detayl\u0131 T\u00fcrk\u00e7e:\", yerelTarih.toLocaleString(\"tr-TR\", se\u00e7enekler));\n\/\/ \u00d6rn: Pazartesi, 17 Temmuz 2023 10:30:00 GMT+3<\/code><\/pre>\n<h4>Uluslararas\u0131 Tarih ve Saat API&#8217;si (Intl.DateTimeFormat)<\/h4>\n<p>Yerel ayarlara duyarl\u0131 bi\u00e7imlendirme i\u00e7in daha geli\u015fmi\u015f ve g\u00fc\u00e7l\u00fc bir kontrol sa\u011flayan <code>Intl.DateTimeFormat<\/code> nesnesi, do\u011frudan <code>Date<\/code> nesnesinin metotlar\u0131 olmasa da, tarih bi\u00e7imlendirme s\u00f6z konusu oldu\u011funda vazge\u00e7ilmez bir ara\u00e7t\u0131r. Bu API, farkl\u0131 diller ve b\u00f6lgeler i\u00e7in \u00f6zel bi\u00e7imlendirme kurallar\u0131 tan\u0131mlaman\u0131za olanak tan\u0131r.<\/p>\n<pre><code class=\"language-javascript\">const tarihIntl = new Date();\n\nconst formatterTR = new Intl.DateTimeFormat(\"tr-TR\", {\n    year: 'numeric',\n    month: 'long',\n    day: 'numeric'\n});\nconsole.log(\"Intl T\u00fcrk\u00e7e Tarih:\", formatterTR.format(tarihIntl)); \/\/ 17 Temmuz 2023\n\nconst formatterEN = new Intl.DateTimeFormat(\"en-US\", {\n    hour: 'numeric',\n    minute: 'numeric',\n    second: 'numeric',\n    timeZone: 'America\/New_York' \/\/ Belirli bir zaman dilimi belirleme\n});\nconsole.log(\"Intl New York Saati:\", formatterEN.format(tarihIntl)); \/\/ \u00d6rn: 3:30:00 AM<\/code><\/pre>\n<p><code>Intl.DateTimeFormat<\/code> ile zaman dilimlerini, takvim sistemlerini, say\u0131 sistemlerini ve hatta tarih bile\u015fenlerinin s\u0131ras\u0131n\u0131 bile kontrol edebilirsiniz. Bu, k\u00fcresel uygulamalar geli\u015ftirirken esneklik sa\u011flar.<\/p>\n<h3>Zaman Dilimleri ve UTC<\/h3>\n<p>Zaman dilimleri, JavaScript <code>Date<\/code> nesnesiyle \u00e7al\u0131\u015f\u0131rken en b\u00fcy\u00fck karma\u015f\u0131kl\u0131klardan birini olu\u015fturur. JavaScript&#8217;te <code>Date<\/code> nesnesi, dahili olarak zaman\u0131 UTC (Coordinated Universal Time) milisaniye de\u011feri olarak saklar. Ancak, \u00e7o\u011fu &#8220;get&#8221; ve &#8220;set&#8221; metodu, bu UTC de\u011ferini kullan\u0131c\u0131n\u0131n yerel sisteminin zaman dilimine g\u00f6re d\u00f6n\u00fc\u015ft\u00fcrerek i\u015flem yapar. Bu durum, geli\u015ftiricilerin yerel zaman ve UTC aras\u0131ndaki fark\u0131 iyi anlamas\u0131n\u0131 gerektirir.<\/p>\n<h4>Yerel Zaman vs. UTC<\/h4>\n<ul>\n<li><strong>Yerel Zaman:<\/strong> Kullan\u0131c\u0131n\u0131n bilgisayar\u0131n\u0131n ayarl\u0131 oldu\u011fu zaman dilimine g\u00f6re g\u00f6sterilen zamand\u0131r. \u00d6rne\u011fin, \u0130stanbul&#8217;da GMT+3.<\/li>\n<li><strong>UTC (Coordinated Universal Time):<\/strong> Uluslararas\u0131 atomik saate dayanan, d\u00fcnya \u00e7ap\u0131nda kabul g\u00f6rm\u00fc\u015f birincil zaman standard\u0131d\u0131r. Herhangi bir zaman diliminden ba\u011f\u0131ms\u0131zd\u0131r.<\/li>\n<\/ul>\n<p><code>new Date()<\/code> ile bir nesne olu\u015fturuldu\u011funda veya <code>set...()<\/code> metotlar\u0131 kullan\u0131ld\u0131\u011f\u0131nda, bu i\u015flemler genellikle yerel zaman dilimi ba\u011flam\u0131nda ger\u00e7ekle\u015fir. Ancak, <code>getTime()<\/code>, <code>setTime()<\/code> ve <code>toISOString()<\/code> gibi metotlar do\u011frudan UTC milisaniye de\u011feriyle \u00e7al\u0131\u015f\u0131r.<\/p>\n<pre><code class=\"language-javascript\">const tarih = new Date(); \/\/ Yerel zaman diliminde olu\u015fturulur\n\nconsole.log(\"Yerel Zaman:\", tarih.toLocaleString());\nconsole.log(\"UTC Zaman:\", tarih.toUTCString());\nconsole.log(\"ISO Zaman (UTC):\", tarih.toISOString());\n\n\/\/ getTimezoneOffset() metodu, yerel zaman dilimi ile UTC aras\u0131ndaki fark\u0131 dakika cinsinden verir.\n\/\/ \u00d6rn: GMT+3 i\u00e7in -180 d\u00f6ner (UTC'den 3 saat ileride oldu\u011fu i\u00e7in)\nconsole.log(\"Zaman Dilimi Ofseti (dakika):\", tarih.getTimezoneOffset());<\/code><\/pre>\n<p>Uygulamalar\u0131n\u0131zda tutarl\u0131l\u0131\u011f\u0131 sa\u011flamak i\u00e7in, \u00f6zellikle sunucu taraf\u0131nda tarihleri depolarken ve farkl\u0131 zaman dilimlerindeki kullan\u0131c\u0131lar aras\u0131nda tarihleri senkronize ederken her zaman UTC kullanmak en iyi pratiktir. Tarihleri UTC olarak depolay\u0131p, kullan\u0131c\u0131ya g\u00f6sterirken veya giri\u015f al\u0131rken yerel zaman dilimine d\u00f6n\u00fc\u015ft\u00fcrmek, zaman dilimi kaynakl\u0131 hatalar\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde azalt\u0131r.<\/p>\n<h3>Tarih Hesaplamalar\u0131 ve Kar\u015f\u0131la\u015ft\u0131rmalar<\/h3>\n<p><code>Date<\/code> nesneleriyle matematiksel i\u015flemler yapmak, \u00f6zellikle iki tarih aras\u0131ndaki fark\u0131 bulmak veya bir tarihe belirli bir s\u00fcre eklemek\/\u00e7\u0131karmak i\u00e7in \u00f6nemlidir. JavaScript&#8217;te <code>Date<\/code> nesneleri dahili olarak milisaniye cinsinden temsil edildi\u011finden, bu t\u00fcr hesaplamalar olduk\u00e7a basittir.<\/p>\n<h4>Tarihleri Toplama\/\u00c7\u0131karma<\/h4>\n<p>Bir <code>Date<\/code> nesnesine do\u011frudan say\u0131sal de\u011ferler ekleyip \u00e7\u0131karamazs\u0131n\u0131z. Bunun yerine, <code>getTime()<\/code> metodu ile milisaniye de\u011ferini al\u0131p, bu de\u011fere milisaniye cinsinden s\u00fcre ekleyip \u00e7\u0131karabilir ve sonucu <code>new Date()<\/code> veya <code>setTime()<\/code> ile yeni bir <code>Date<\/code> nesnesine d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/p>\n<pre><code class=\"language-javascript\">const simdi = new Date();\nconsole.log(\"\u015eu an:\", simdi.toLocaleString());\n\n\/\/ Bir g\u00fcn sonras\u0131\nconst birGunMilisaniye = 24 <em> 60 <\/em> 60 * 1000;\nconst yarin = new Date(simdi.getTime() + birGunMilisaniye);\nconsole.log(\"Yar\u0131n:\", yarin.toLocaleString());\n\n\/\/ Bir hafta \u00f6ncesi\nconst birHaftaMilisaniye = 7 * birGunMilisaniye;\nconst gecenHafta = new Date(simdi.getTime() - birHaftaMilisaniye);\nconsole.log(\"Ge\u00e7en Hafta:\", gecenHafta.toLocaleString());\n\n\/\/ setDate() veya setHours() gibi metotlarla da daha okunabilir \u015fekilde i\u015flem yap\u0131labilir\nconst sonrakiAy = new Date(simdi);\nsonrakiAy.setMonth(simdi.getMonth() + 1);\nconsole.log(\"Sonraki Ay:\", sonrakiAy.toLocaleString());<\/code><\/pre>\n<h4>\u0130ki Tarih Aras\u0131ndaki Fark\u0131 Bulma<\/h4>\n<p>\u0130ki <code>Date<\/code> nesnesi aras\u0131ndaki fark, milisaniye cinsinden kolayca hesaplanabilir. Sadece <code>getTime()<\/code> metotlar\u0131n\u0131n sonu\u00e7lar\u0131n\u0131 birbirinden \u00e7\u0131karmak yeterlidir. Daha sonra bu milisaniye fark\u0131n\u0131 g\u00fcn, saat, dakika gibi birimlere d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/p>\n<pre><code class=\"language-javascript\">const baslangicTarihi = new Date(\"2023-07-01T00:00:00Z\");\nconst bitisTarihi = new Date(\"2023-07-17T12:00:00Z\");\n\nconst farkMilisaniye = bitisTarihi.getTime() - baslangicTarihi.getTime();\nconsole.log(\"Fark (milisaniye):\", farkMilisaniye);\n\nconst farkSaniye = farkMilisaniye \/ 1000;\nconst farkDakika = farkSaniye \/ 60;\nconst farkSaat = farkDakika \/ 60;\nconst farkGun = farkSaat \/ 24;\n\nconsole.log(\"Fark (g\u00fcn):\", farkGun); \/\/ 16.5 g\u00fcn<\/code><\/pre>\n<h4>Tarihleri Kar\u015f\u0131la\u015ft\u0131rma<\/h4>\n<p><code>Date<\/code> nesneleri do\u011frudan kar\u015f\u0131la\u015ft\u0131rma operat\u00f6rleriyle (<code><<\/code>, <code>><\/code>, <code><=<\/code>, <code>>=<\/code>) kar\u015f\u0131la\u015ft\u0131r\u0131labilir. JavaScript, bu operat\u00f6rleri kulland\u0131\u011f\u0131n\u0131zda <code>Date<\/code> nesnelerini otomatik olarak <code>getTime()<\/code> de\u011ferlerine d\u00f6n\u00fc\u015ft\u00fcr\u00fcr ve kar\u015f\u0131la\u015ft\u0131rmay\u0131 milisaniye cinsinden yapar.<\/p>\n<pre><code class=\"language-javascript\">const tarih1 = new Date(\"2023-01-01\");\nconst tarih2 = new Date(\"2023-01-01\");\nconst tarih3 = new Date(\"2023-01-02\");\n\nconsole.log(\"tarih1 == tarih2:\", tarih1 == tarih2); \/\/ false (farkl\u0131 nesneler)\nconsole.log(\"tarih1.getTime() == tarih2.getTime():\", tarih1.getTime() == tarih2.getTime()); \/\/ true\nconsole.log(\"tarih1 < tarih3:\", tarih1 < tarih3);   \/\/ true\nconsole.log(\"tarih3 > tarih2:\", tarih3 > tarih2);   \/\/ true<\/code><\/pre>\n<p>Dikkat edilmesi gereken nokta, <code>==<\/code> veya <code>===<\/code> operat\u00f6rlerinin iki farkl\u0131 <code>Date<\/code> nesnesinin ayn\u0131 an\u0131 temsil edip etmedi\u011fini kontrol etmek i\u00e7in yeterli olmamas\u0131d\u0131r; \u00e7\u00fcnk\u00fc bu operat\u00f6rler nesne referanslar\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131r. Tarih de\u011ferlerini kar\u015f\u0131la\u015ft\u0131rmak i\u00e7in <code>getTime()<\/code> metodunu kullanmak veya <code>Date<\/code> nesnelerini do\u011frudan <code><<\/code>, <code>><\/code> gibi operat\u00f6rlerle kar\u015f\u0131la\u015ft\u0131rmak daha do\u011frudur.<\/p>\n<h3>Date.now() ve Performans<\/h3>\n<p>Ge\u00e7erli zaman\u0131n Epoch milisaniye de\u011ferini almak i\u00e7in iki yayg\u0131n y\u00f6ntem vard\u0131r:<\/p>\n<ol>\n<li><code>new Date().getTime()<\/code><\/li>\n<li><code>Date.now()<\/code><\/li>\n<\/ol>\n<p><code>Date.now()<\/code>, ES5 ile tan\u0131t\u0131lan statik bir metottur ve ge\u00e7erli zaman\u0131n milisaniye de\u011ferini do\u011frudan d\u00f6nd\u00fcr\u00fcr. Bu y\u00f6ntem, bir <code>Date<\/code> nesnesi olu\u015fturma maliyetinden ka\u00e7\u0131nd\u0131\u011f\u0131 i\u00e7in genellikle <code>new Date().getTime()<\/code>'dan daha performansl\u0131d\u0131r. \u00d6zellikle performans kritik uygulamalarda veya s\u0131k s\u0131k g\u00fcncel zaman\u0131 alman\u0131z gerekti\u011finde <code>Date.now()<\/code> tercih edilmelidir.<\/p>\n<pre><code class=\"language-javascript\">const milisaniye1 = new Date().getTime();\nconst milisaniye2 = Date.now();\n\nconsole.log(\"new Date().getTime():\", milisaniye1);\nconsole.log(\"Date.now():\", milisaniye2);\n\n\/\/ Performans kar\u015f\u0131la\u015ft\u0131rmas\u0131 (basit bir \u00f6rnek)\nconsole.time(\"new Date().getTime()\");\nfor (let i = 0; i < 100000; i++) {\n    new Date().getTime();\n}\nconsole.timeEnd(\"new Date().getTime()\");\n\nconsole.time(\"Date.now()\");\nfor (let i = 0; i < 100000; i++) {\n    Date.now();\n}\nconsole.timeEnd(\"Date.now()\");<\/code><\/pre>\n<p>Yukar\u0131daki \u00f6rnekte <code>Date.now()<\/code>'\u0131n belirgin \u015fekilde daha h\u0131zl\u0131 \u00e7al\u0131\u015ft\u0131\u011f\u0131 g\u00f6r\u00fclecektir.<\/p>\n<h3>Statik Metotlar<\/h3>\n<p><code>Date<\/code> nesnesi ayr\u0131ca iki faydal\u0131 statik metoda sahiptir:<\/p>\n<h4>Date.parse()<\/h4>\n<p><code>Date.parse()<\/code> metodu, bir tarih dizesini ayr\u0131\u015ft\u0131r\u0131r ve Unix Epoch'tan itibaren ge\u00e7en milisaniye say\u0131s\u0131n\u0131 d\u00f6nd\u00fcr\u00fcr. E\u011fer dize ge\u00e7erli bir tarih format\u0131nda de\u011filse <code>NaN<\/code> (Not-a-Number) d\u00f6nd\u00fcr\u00fcr. Bu metodun ayr\u0131\u015ft\u0131rma davran\u0131\u015f\u0131, taray\u0131c\u0131lar aras\u0131nda farkl\u0131l\u0131k g\u00f6sterebilece\u011fi i\u00e7in dikkatli kullan\u0131lmal\u0131d\u0131r. ISO 8601 format\u0131 en g\u00fcvenilir olan\u0131d\u0131r.<\/p>\n<pre><code class=\"language-javascript\">const milisaniyeISO = Date.parse(\"2023-07-17T10:30:00Z\");\nconsole.log(\"ISO Dizesi Milisaniye:\", milisaniyeISO); \/\/ 1689580200000\n\nconst milisaniyeKisa = Date.parse(\"07\/17\/2023\");\nconsole.log(\"K\u0131sa Dize Milisaniye:\", milisaniyeKisa); \/\/ 1689542400000 (Yerel zaman dilimine g\u00f6re)\n\nconst gecersizMilisaniye = Date.parse(\"Bug\u00fcn\");\nconsole.log(\"Ge\u00e7ersiz Dize Milisaniye:\", gecersizMilisaniye); \/\/ NaN<\/code><\/pre>\n<p><code>Date.parse()<\/code>, genellikle bir dizeyi <code>new Date()<\/code> ile nesneye d\u00f6n\u00fc\u015ft\u00fcrmeden \u00f6nce ge\u00e7erlili\u011fini kontrol etmek veya sadece milisaniye de\u011ferini almak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4>Date.UTC()<\/h4>\n<p><code>Date.UTC()<\/code> metodu, <code>new Date()<\/code> yap\u0131c\u0131 metodunun say\u0131sal parametrelerle kullan\u0131lan versiyonuna benzer, ancak t\u00fcm parametreleri UTC zaman dilimi ba\u011flam\u0131nda yorumlar ve Unix Epoch'tan itibaren ge\u00e7en UTC milisaniye de\u011ferini d\u00f6nd\u00fcr\u00fcr. Ay indeksi yine 0'dan ba\u015flar.<\/p>\n<pre><code class=\"language-javascript\">\/\/ Date.UTC(y\u0131l, ay, [g\u00fcn], [saat], [dakika], [saniye], [milisaniye])\nconst utcMilisaniye = Date.UTC(2023, 6, 17, 10, 30, 0, 0); \/\/ 17 Temmuz 2023 10:30:00 UTC\nconsole.log(\"Date.UTC Milisaniye:\", utcMilisaniye); \/\/ 1689580200000\n\nconst utcTarih = new Date(utcMilisaniye);\nconsole.log(\"Date.UTC ile Olu\u015fturulan Tarih (Yerel):\", utcTarih.toLocaleString());\nconsole.log(\"Date.UTC ile Olu\u015fturulan Tarih (UTC):\", utcTarih.toUTCString());<\/code><\/pre>\n<p>Bu metot, \u00f6zellikle bir uygulaman\u0131n her zaman UTC tarihleriyle \u00e7al\u0131\u015fmas\u0131 gerekti\u011finde ve manuel olarak UTC de\u011ferleri olu\u015fturmak istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>JavaScript <code>Date<\/code> nesnesiyle \u00e7al\u0131\u015f\u0131rken baz\u0131 yayg\u0131n sorunlar ve bunlara y\u00f6nelik ipu\u00e7lar\u0131 bulunmaktad\u0131r:<\/p>\n<h4>Ay \u0130ndeksi (0-11)<\/h4>\n<p>En s\u0131k yap\u0131lan hatalardan biri, aylar\u0131n 0'dan ba\u015flad\u0131\u011f\u0131n\u0131 unutmakt\u0131r (Ocak=0, Aral\u0131k=11). Bu, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in kafa kar\u0131\u015ft\u0131r\u0131c\u0131 olabilir. \u00d6rne\u011fin, Temmuz ay\u0131n\u0131 temsil etmek i\u00e7in 7 yerine 6 kullanman\u0131z gerekir.<\/p>\n<pre><code class=\"language-javascript\">\/\/ Hatal\u0131: Temmuz i\u00e7in 7 kullanmak\nconst yanlisTarih = new Date(2023, 7, 1); \/\/ Bu 1 A\u011fustos 2023'\u00fc verir!\nconsole.log(\"Yanl\u0131\u015f Ay \u0130ndeksi:\", yanlisTarih.toLocaleDateString(\"tr-TR\"));\n\n\/\/ Do\u011fru: Temmuz i\u00e7in 6 kullanmak\nconst dogruTarih = new Date(2023, 6, 1); \/\/ Bu 1 Temmuz 2023'\u00fc verir.\nconsole.log(\"Do\u011fru Ay \u0130ndeksi:\", dogruTarih.toLocaleDateString(\"tr-TR\"));<\/code><\/pre>\n<h4>Zaman Dilimi Farkl\u0131l\u0131klar\u0131<\/h4>\n<p>Yerel zaman dilimi ve UTC aras\u0131ndaki d\u00f6n\u00fc\u015f\u00fcmler, \u00f6zellikle farkl\u0131 co\u011frafi b\u00f6lgelerdeki kullan\u0131c\u0131larla \u00e7al\u0131\u015f\u0131rken ciddi sorunlara yol a\u00e7abilir. Tarihleri UTC olarak depolamak ve yaln\u0131zca kullan\u0131c\u0131n\u0131n aray\u00fcz\u00fcnde g\u00f6sterirken yerel zaman dilimine d\u00f6n\u00fc\u015ft\u00fcrmek, bu sorunlar\u0131n \u00f6n\u00fcne ge\u00e7menin en iyi yoludur.<\/p>\n<pre><code class=\"language-javascript\">\/\/ Bir kullan\u0131c\u0131n\u0131n girdi\u011fi tarih\nconst kullaniciGirisi = new Date(\"2023-07-17T10:00:00\"); \/\/ Yerel saat diliminde 10:00\n\n\/\/ Bunu UTC olarak depola\nconst utcDepolama = kullaniciGirisi.toISOString();\nconsole.log(\"Depolanan (UTC):\", utcDepolama); \/\/ 2023-07-17T07:00:00.000Z (GMT+3 i\u00e7in)\n\n\/\/ Ba\u015fka bir kullan\u0131c\u0131ya g\u00f6sterirken tekrar yerel saate \u00e7evir\nconst gosterilecekTarih = new Date(utcDepolama);\nconsole.log(\"G\u00f6sterilen (Yerel):\", gosterilecekTarih.toLocaleString()); \/\/ Kendi yerel saat dilimine g\u00f6re 10:00<\/code><\/pre>\n<h4>Ge\u00e7ersiz Tarih (\"Invalid Date\")<\/h4>\n<p><code>new Date()<\/code> veya <code>Date.parse()<\/code> metotlar\u0131na ge\u00e7ersiz bir tarih dizesi verildi\u011finde, \"Invalid Date\" nesnesi d\u00f6nd\u00fcr\u00fcl\u00fcr ve <code>getTime()<\/code> metodu <code>NaN<\/code> de\u011ferini verir. Bu durumu her zaman kontrol etmek \u00f6nemlidir.<\/p>\n<pre><code class=\"language-javascript\">const testTarih = new Date(\"invalid string\");\nif (isNaN(testTarih.getTime())) {\n    console.log(\"Ge\u00e7ersiz Tarih!\");\n} else {\n    console.log(\"Ge\u00e7erli Tarih:\", testTarih);\n}<\/code><\/pre>\n<h4>K\u00fct\u00fcphane Kullan\u0131m\u0131<\/h4>\n<p><code>Date<\/code> nesnesi bir\u00e7ok temel i\u015flemi halledebilse de, karma\u015f\u0131k tarih i\u015flemleri, zaman dilimi y\u00f6netimi, bi\u00e7imlendirme ve uluslararas\u0131la\u015ft\u0131rma i\u00e7in ek k\u00fct\u00fcphaneler kullanmak i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131rabilir. Moment.js (art\u0131k geli\u015ftirilmiyor olsa da hala yayg\u0131n), date-fns ve Luxon gibi k\u00fct\u00fcphaneler bu alanda pop\u00fcler \u00e7\u00f6z\u00fcmler sunar.<\/p>\n<h3>Geli\u015fmi\u015f Tarih \u0130\u015flemleri i\u00e7in K\u00fct\u00fcphaneler<\/h3>\n<p>JavaScript'in yerle\u015fik <code>Date<\/code> nesnesi temel ihtiya\u00e7lar\u0131 kar\u015f\u0131lasa da, karma\u015f\u0131k senaryolarda (\u00f6rn: \u00f6zel bi\u00e7imlendirme, zaman dilimleri aras\u0131 d\u00f6n\u00fc\u015f\u00fcmler, tarih aral\u0131klar\u0131, insan taraf\u0131ndan okunabilir s\u00fcreler) yetersiz kalabilir veya kodunuzu \u00e7ok karma\u015f\u0131k hale getirebilir. Bu gibi durumlarda, \u00fc\u00e7\u00fcnc\u00fc taraf k\u00fct\u00fcphaneler imdad\u0131n\u0131za yeti\u015fir.<\/p>\n<h4>Moment.js<\/h4>\n<p>Uzun y\u0131llar boyunca JavaScript'te tarih ve saat y\u00f6netimi i\u00e7in fiili standart olmu\u015ftur. Kapsaml\u0131 API'si, kolay kullan\u0131m\u0131 ve zengin \u00f6zellikleri sayesinde bir\u00e7ok projede yerini alm\u0131\u015ft\u0131r. Ancak, Moment.js projesi art\u0131k yeni \u00f6zellikler eklemiyor ve performans ile paket boyutu (bundle size) konular\u0131nda modern alternatiflere g\u00f6re dezavantajl\u0131d\u0131r. Mevcut projelerde hala kullan\u0131l\u0131yor olsa da, yeni projeler i\u00e7in genellikle tavsiye edilmez.<\/p>\n<pre><code class=\"language-javascript\">\/\/ Moment.js \u00f6rne\u011fi\n\/\/ import moment from 'moment';\n\/\/ const now = moment();\n\/\/ console.log(now.format(\"DD MMMM YYYY, HH:mm:ss\")); \/\/ 17 Temmuz 2023, 10:30:00\n\/\/ console.log(now.add(7, 'days').calendar()); \/\/ Haftaya Pazartesi saat 10:30<\/code><\/pre>\n<h4>date-fns<\/h4>\n<p>Modern JavaScript geli\u015ftirme yakla\u015f\u0131mlar\u0131na uygun olarak tasarlanm\u0131\u015f, mod\u00fcler ve fonksiyonel bir k\u00fct\u00fcphanedir. Sadece ihtiyac\u0131n\u0131z olan fonksiyonlar\u0131 i\u00e7eri aktarman\u0131za olanak tan\u0131r, bu da paket boyutunu optimize eder. Moment.js'in aksine, orijinal <code>Date<\/code> nesnesini de\u011fi\u015ftirmez, bunun yerine yeni <code>Date<\/code> nesneleri d\u00f6nd\u00fcr\u00fcr. Bu, daha \u00f6ng\u00f6r\u00fclebilir ve yan etkisiz kod yazmay\u0131 te\u015fvik eder.<\/p>\n<pre><code class=\"language-javascript\">\/\/ date-fns \u00f6rne\u011fi\n\/\/ import { format, addDays, differenceInDays } from 'date-fns';\n\/\/ import { tr } from 'date-fns\/locale';\n\n\/\/ const now = new Date();\n\/\/ console.log(format(now, 'dd MMMM yyyy, HH:mm:ss', { locale: tr })); \/\/ 17 Temmuz 2023, 10:30:00\n\n\/\/ const nextWeek = addDays(now, 7);\n\/\/ console.log(format(nextWeek, 'dd\/MM\/yyyy'));\n\n\/\/ const diff = differenceInDays(nextWeek, now);\n\/\/ console.log(<code>Fark: ${diff} g\u00fcn<\/code>);<\/code><\/pre>\n<h4>Luxon<\/h4>\n<p>Moment.js'in yarat\u0131c\u0131lar\u0131ndan birinin geli\u015ftirdi\u011fi, de\u011fi\u015fmez (immutable) ve daha modern bir tarih\/saat k\u00fct\u00fcphanesidir. Zaman dilimi y\u00f6netimi konusunda \u00f6zellikle g\u00fc\u00e7l\u00fcd\u00fcr ve <code>Intl<\/code> API'sini temel al\u0131r. Daha karma\u015f\u0131k ve g\u00fcvenilir zaman y\u00f6netimi gerektiren uygulamalar i\u00e7in harika bir se\u00e7enektir.<\/p>\n<pre><code class=\"language-javascript\">\/\/ Luxon \u00f6rne\u011fi\n\/\/ import { DateTime } from 'luxon';\n\n\/\/ const now = DateTime.now();\n\/\/ console.log(now.toLocaleString(DateTime.DATETIME_FULL)); \/\/ 17 Temmuz 2023 Pazartesi 10:30:00 GMT+3\n\/\/ console.log(now.setZone('America\/New_York').toLocaleString(DateTime.DATETIME_FULL)); \/\/ 17 Temmuz 2023 Pazartesi 03:30:00 GMT-4\n\n\/\/ const future = now.plus({ days: 1, hours: 2 });\n\/\/ console.log(future.toLocaleString(DateTime.DATETIME_SHORT));<\/code><\/pre>\n<p>Yeni projelerde genellikle date-fns veya Luxon gibi modern k\u00fct\u00fcphaneler tercih edilmelidir. Bu k\u00fct\u00fcphaneler, daha iyi performans, daha k\u00fc\u00e7\u00fck paket boyutlar\u0131 ve daha sezgisel API'ler sunarak geli\u015ftirme s\u00fcrecini kolayla\u015ft\u0131r\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>JavaScript <code>Date<\/code> nesnesi, web uygulamalar\u0131nda zaman\u0131 y\u00f6netmek i\u00e7in g\u00fc\u00e7l\u00fc ve esnek bir temel sa\u011flar. Tarih ve saat bilgilerini olu\u015fturmaktan, bile\u015fenlerini almaya ve ayarlamaya, farkl\u0131 formatlarda bi\u00e7imlendirmeye kadar geni\u015f bir yelpazede i\u015flevsellik sunar. Ancak, aylar\u0131n 0'dan indekslenmesi, zaman dilimi farkl\u0131l\u0131klar\u0131 ve dize ayr\u0131\u015ft\u0131rma tutars\u0131zl\u0131klar\u0131 gibi n\u00fcanslar, geli\u015ftiricilerin dikkatli olmas\u0131n\u0131 gerektirir. UTC'yi temel alarak tarihleri depolamak ve zaman dilimi hassasiyeti gerektiren durumlarda <code>Intl.DateTimeFormat<\/code> veya \u00fc\u00e7\u00fcnc\u00fc taraf k\u00fct\u00fcphanelerden (date-fns, Luxon) faydalanmak, bu zorluklar\u0131n \u00fcstesinden gelmenin anahtar\u0131d\u0131r. <code>Date.now()<\/code> gibi performans odakl\u0131 statik metotlar\u0131 bilmek ve do\u011fru yerde kullanmak da uygulaman\u0131z\u0131n verimlili\u011fini art\u0131racakt\u0131r. Bu rehber, JavaScript <code>Date<\/code> nesnesinin t\u00fcm y\u00f6nlerini derinlemesine inceleyerek, zaman y\u00f6netiminde daha bilin\u00e7li ve hatas\u0131z kod yazman\u0131za yard\u0131mc\u0131 olmay\u0131 ama\u00e7lamaktad\u0131r. Do\u011fru ara\u00e7lar\u0131 ve en iyi uygulamalar\u0131 kullanarak, tarih ve saatle ilgili t\u00fcm zorluklar\u0131n \u00fcstesinden gelebilir ve sa\u011flam, k\u00fcresel olarak eri\u015filebilir uygulamalar geli\u015ftirebilirsiniz.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Web uygulamalar\u0131n\u0131n ve modern yaz\u0131l\u0131mlar\u0131n temel ta\u015flar\u0131ndan biri, zaman ve tarih bilgilerini do\u011fru bir \u015fekilde y\u00f6netme yetene\u011fidir.","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-40860","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>JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f - 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\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f\" \/>\n<meta property=\"og:description\" content=\"Web uygulamalar\u0131n\u0131n ve modern yaz\u0131l\u0131mlar\u0131n temel ta\u015flar\u0131ndan biri, zaman ve tarih bilgilerini do\u011fru bir \u015fekilde y\u00f6netme yetene\u011fidir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-01T18:40:56+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=\"21 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f\",\"datePublished\":\"2026-03-01T18:40:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/\"},\"wordCount\":2810,\"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\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/\",\"name\":\"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-03-01T18:40:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f\"}]},{\"@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":"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f - 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\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/","og_locale":"tr_TR","og_type":"article","og_title":"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f","og_description":"Web uygulamalar\u0131n\u0131n ve modern yaz\u0131l\u0131mlar\u0131n temel ta\u015flar\u0131ndan biri, zaman ve tarih bilgilerini do\u011fru bir \u015fekilde y\u00f6netme yetene\u011fidir.","og_url":"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-03-01T18:40:56+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"21 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f","datePublished":"2026-03-01T18:40:56+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/"},"wordCount":2810,"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\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/","url":"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/","name":"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-03-01T18:40:56+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/javascript-date-nesnesini-kesfetmek-zaman-yonetiminde-derinlemesine-bir-bakis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JavaScript Date Nesnesini Ke\u015ffetmek: Zaman Y\u00f6netiminde Derinlemesine Bir Bak\u0131\u015f"}]},{"@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\/40860","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=40860"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40860\/revisions"}],"predecessor-version":[{"id":40861,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40860\/revisions\/40861"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=40860"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=40860"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=40860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}