lostyazilim

Ay'ın Türkçe karşılığı

12 Mesajlar 1.791 Okunma
lstbozum
smsonayhizmeti

veraya34 veraya34 WM Aracı Kullanıcı
  • Üyelik 04.09.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek öğretmen
  • Konum İzmir
  • Ad Soyad H** Ç**
  • Mesajlar 32
  • Beğeniler 1 / 2
  • Ticaret 1, (%100)

setlocale(LC_TIME, "turkish");
echo "Tarih ".strftime("%d %B %Y");
//Çıktı: Tarih 09 Eylül 2012


BU kodda %B türkçe aylar büyük harfle başlıyor. ayın küçük harfle gelmesi için ne yapmak gerekir...


$yesterday = date("YFd", mktime(0, 0, 0, date("F") , date("d")-1,date("Y")));


Merhaba
yukardaki kodda "F" koduyla ayların sadece ingilizce adı geliyor. Yukarıdaki kod yapısıyla İnglizce aylar yerine türkçe ayları nasıl uyarlayabilirim.
 

 

wmaraci
reklam

Procondio Procondio WM Aracı Kullanıcı
  • Üyelik 30.04.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım geliştirici
  • Konum Tekirdağ
  • Ad Soyad H** K**
  • Mesajlar 72
  • Beğeniler 25 / 24
  • Ticaret 1, (%100)
PHP'nin string fonksiyonlarını kullanarak harflerin büyüklüğünü, küçüklüğünü, yalnızca ilk harfin büyük olmasını ayarlayabilirsin.
Fonksiyonlar strtoupper(), strtolower(), ucfirst()

Fakat onun yerine şöyle bir kod kullanarak çıktıya tam olarak hakim olabilirsin.

$aylar = array("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık");

echo $aylar[date("m")];
 

 

veraya34 veraya34 WM Aracı Kullanıcı
  • Üyelik 04.09.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek öğretmen
  • Konum İzmir
  • Ad Soyad H** Ç**
  • Mesajlar 32
  • Beğeniler 1 / 2
  • Ticaret 1, (%100)
tşk ederim bazı dillerde setlocale(LC_TIME, "turkish"); komutuyla küçük harfle başlayan ay gün var sanırım bizde yok.
Aylar diye başlayan komutları biliyorum ama 2. kodda yerleştirmedim.
Belirttiğin kodları gözden geçireyim.
 

 

Procondio Procondio WM Aracı Kullanıcı
  • Üyelik 30.04.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım geliştirici
  • Konum Tekirdağ
  • Ad Soyad H** K**
  • Mesajlar 72
  • Beğeniler 25 / 24
  • Ticaret 1, (%100)
Bu aslında hazır bir komut değil. date("m") ifadesi içinde bulunulan ayın numerik karşılığını verir, kasım için "11" gibi. $aylar isminde bir dizi oluşturdum ve dizinin elemanlarından mevcut ayın sırasında olan elemanı çektirdim.
 

 

wmaraci
wmaraci

veraya34 veraya34 WM Aracı Kullanıcı
  • Üyelik 04.09.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek öğretmen
  • Konum İzmir
  • Ad Soyad H** Ç**
  • Mesajlar 32
  • Beğeniler 1 / 2
  • Ticaret 1, (%100)
$yesterday = date("Ymd", mktime(0, 0, 0, date("m") , date("d")-1,date("Y"))); bu komut içinde

echo yazmadan date("m") yazdığım için doğru sonucu alamıyorum tabiki
$yesterday = date başlangıçlı komut satırında bir önceki günü yakalamak amacım. Ama ay kısmı yazıyla ekim Benim yaptıklarımda ay Ekim olunca da istediğim sayfaya ulaşmıyorum.
 

 

Procondio Procondio WM Aracı Kullanıcı
  • Üyelik 30.04.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım geliştirici
  • Konum Tekirdağ
  • Ad Soyad H** K**
  • Mesajlar 72
  • Beğeniler 25 / 24
  • Ticaret 1, (%100)
date() fonksiyonunu veri saklarken değil, veriyi gösterirken kullanmak daha mantıklı. Date string çıktı üretir. Tarih işlemlerinde mktime() fonksiyonu ayrıca bir algoritma yazılmadığı sürece zaten sorun çıkaracaktır. Ayın 1. gününden 1 çıkarıldığında 0 sonucu çıkacak örneğin, bir önceki ay gösterilmeyecek. Bunun yerine, veriyi değişkenler dahil bir yerde saklarken time() kullanmak gerekir. Veri kullanıcıya gösterilirken date() kullanabilirsin.

$yesterday = time()-60*60*24;
echo date("Ymd", $yesterday);


Veya direkt date() olarak tutmak istersen şu şekilde yazabilirsin:

$yesterday = date("Ymd", time()-60*60*24);

Tabii bu tam olarak 24 saat önceki tarihi gösterir.

Aynı şekilde strtotime() fonksiyonunu da kullanabilirsin.

$yesterday = strtotime("yesterday");

veya

$yesterday = date("Ymd", strtotime("yesterday"));
 

 

Procondio Procondio WM Aracı Kullanıcı
  • Üyelik 30.04.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım geliştirici
  • Konum Tekirdağ
  • Ad Soyad H** K**
  • Mesajlar 72
  • Beğeniler 25 / 24
  • Ticaret 1, (%100)
Esas sorduğun kısmı atlamışım, şu şekilde en başta yazdığım koda uyarlayabilirsin.

$aylar = array("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık");

$yesterday = strtotime("yesterday");

echo date("Y", $yesterday)." ";
echo $aylar[date("m", $yesterday)]." ";
echo date("d", $yesterday);


Echo ile yazdırmak yerine değişkenlere de aktarabilirsin tabii.

$strYesterday = date("Y", $yesterday)." ".$aylar[date("m", $yesterday)]." ".date("d", $yesterday);

Tüm tarihi bu şekilde birleştirip bir string olarak saklayabilirsin. Tabii söylediğim gibi bu şekilde bir kullanımı önermiyorum. Esnek değil.
 

 

veraya34 veraya34 WM Aracı Kullanıcı
  • Üyelik 04.09.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek öğretmen
  • Konum İzmir
  • Ad Soyad H** Ç**
  • Mesajlar 32
  • Beğeniler 1 / 2
  • Ticaret 1, (%100)
çok teşekkür ederim. bu şekilde daha mantıklı haklısın. öbürünü seçme amacım sadece bir gün öncesi ile alakalı değildi bir kaç aylık geri dönüş vardı. date("d")-1, ile kafa karıştırmadan eski günleri buluyordum son yazdıklarını deneyecem artık.
 

 

Procondio Procondio WM Aracı Kullanıcı
  • Üyelik 30.04.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım geliştirici
  • Konum Tekirdağ
  • Ad Soyad H** K**
  • Mesajlar 72
  • Beğeniler 25 / 24
  • Ticaret 1, (%100)
Son gönderdiğim mesajdaki kodda bir yeri düzeltmem gerekti. Az önce bir noktayı gözden kaçırmışım, şimdi doğru sonucu veriyor olması gerek.
 

 

veraya34 veraya34 WM Aracı Kullanıcı
  • Üyelik 04.09.2017
  • Yaş/Cinsiyet 54 / E
  • Meslek öğretmen
  • Konum İzmir
  • Ad Soyad H** Ç**
  • Mesajlar 32
  • Beğeniler 1 / 2
  • Ticaret 1, (%100)
sanırım olacak gibi bir kaç deneme yapmam gerekecek. ama hep 30 Kasım 2017 sonucunu veriyor
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al