Online Kimya Özel Dersi Al

ÜCRET

KONU

TARİH

Date_i18n()

WordPress Fonksiyonları
date_i18n( string $tarih_formatı, int|bool $sapmalı_zaman_mührü = false, bool $gmt_dilimi = false )

Açıklaması:

Tarih ifadesini tercüme eder. Date_i18n() fonksiyonu, ilk parametresinde belirtilen formata uygun bir tarih ifadesi döndürür ve belirlediğiniz formatta, gün veya hafta isimleri varsa, bu isimleri, temanızın diline göre, tercüme ederek döndürür.

Parametreleri:

$tarih_formatı

(Zorunludur.) Tarihi yazarken kullandığımız, gün-ay-yıl-saat-dakika-saniye ifadelerini hangi sırada ve tarzda yazacağımızı belirleyen parametredir. Zamanı belirten bu ifadeleri, dilediğimiz sırada ve biçimde kullanarak bir tarih formatı oluştururuz.

Tarih formatı oluşturmak için, PHP dilinin tanıdığı bir takım harfleri kullanmamız gerekir. Bu harfler ve belirttikleri tarih anlamları şunlardır:

Tarih Formatı Oluşturmak İçin Kullanılan Karakterler

  • d – Ayın gününü ifade eder (01 ile başlar 31 ile biter)
  • D – 3 harfe kısaltarak günün ismini yazar.
  • j – Sıfır kullanmadan ayın günün ifade eder. (1 ile başlar 31 ile biter)
  • l (küçük harf ile ‘L’) – Günün tam adını kelime olarak yazar
  • N – ISO-8601 standardında, haftanın gününü numara ile ifade eder. (1 Pazartesi için, 7 Pazar günü için kullanılır)
  • S – İngilizce sıra belirten son ek ile birlikte, ayın gününü ifade eder. The English ordinal suffix for the day of the month (st, nd, rd veya th şeklinde ve iki karakterdirler. j ile güzel çalışır)
  • w – Haftanın gününü numara ile ifade eder. (0 Pazar için, 6 Cumartesi günü için kullanılır)
  • z – Yılın hangi gününde olduğumuzu ifade eder(0 ile 365 arasında bir değer alır.)
  • W – ISO-8601 standartlarına göre yılın kaçıncı haftasında olduğumuzu ifade eder. (Haftalar, pazartesi ile başlar.)
  • F – Ayın tam ismidir.
  • m – Yılın kaçıncı ayında olduğumuzu ifade eder. (01 ile başlar 12 ile biter)
  • M – 3 harfe kısaltarak ayın ismini yazar.
  • n – Yılın kaçıncı ayında olduğumuzu, sıfır kullanmadan ifade eder. (1 ile başlar 12 ile biter)
  • t – Ayın kaçıncı gününde olduğumuzu ifade eder.
  • L – Bir atık yılda olup olmadığımızı ifade eder. ( Atık yıl için 1 değilse 0 gösterir.)
  • o – ISO-8601 standardına göre yıl numarasıdır.
  • Y – 4 sayılı yıldır. (2019 gibi)
  • y – 2 sayılı yıldır. 4 sayılı yılın son iki sayısını kullanır. (19 gibi)
  • a – Küçük harfler ile “am” (öğleden önce) veya “pm” (öğleden sonra) yazar.
  • A – Büyük harflerle “AM” veya “PM” yazar.
  • B – Swatch Internet zamanıdır (000 ile başlar 999 ile biter.)
  • g – 12-saat formatında günün saatidir. (1 ile başlar 12 ile biter.)
  • G – 24-saat formatında günün saatidir. (0 ile başlar 23 ile biter.)
  • h – 12-saat formatında günün saatidir. (01 ile başlar 12 ile biter.)
  • H – 24- saat formatında günün saatidir. (00 ile başlar 23 ile biter.)
  • i – Saatin dakikasıdır. (00 ile başlar 59 ile biter)
  • s – Dakikanın saniyesidir. (00 ile başlar 59 ile biter)
  • u – Mikrosaniyedir (microseconds) (PHP 5.2.2 ve sonrasında çalışır)
  • e – Zaman dilimidir (timezone). (Örnekler: UTC, GMT, Atlantic/Azores)
  • I (Büyük harfle “i”) – Tarihin, gün ışığından yararlanılan bir zamana ait olup olmadığını ifade eder. (Gün ışığından yararlanılan tarihlerde 1, diğerlerinde 0 değerini alır.)
  • O – Geçerli saat diliminin Greenwich zamanından (GMT) saat olarak farkıdır. (Örnek: +0100)
  • P – Geçerli saat diliminin Greenwich zamanından (GMT) saat:dakika olarak farkıdır. (PHP 5.1.3 ve sonrasında)
  • T – Zaman diliminin (timezone) kısaltmasıdır. (Örnekler: EST, MDT)
  • Z – Geçerli saat diliminin, UTC zaman diliminden saniye olarak farkıdır. Zaman diliminin batısı için negatif doğusu için pozitif değer alır. (-43200 ile başlar 50400 ile biter)
  • c – ISO-8601 standardında tarihtir. (Örnek: 2013-05-05T16:34:42+00:00)
  • r – RFC 2822 formatında tarihtir. (Örnek: Fri, 12 Apr 2013 12:01:05 +0200)
  • U – Unix çağından bu yana geçen saniyelerdir. (Unix çağı başlangıcı: January 1 1970 00:00:00 GMT)

Tarih Formatı Belirten PHP Sabitleri

Aşağıdaki PHP sabitleri, bizim için bir takım tarih formatları oluşturur. $tarih_formatı parametresi, değer olarak bu sabitleri de kabul eder. (PHP 5.1.0 ve sonrasında kullanılabilirler):

  • DATE_ATOM – Atom (Örnek: 2013-04-12T15:52:01+00:00)
  • DATE_COOKIE – HTTP Cookies (Örnek: Friday, 12-Apr-13 15:52:01 UTC)
  • DATE_ISO8601 – ISO-8601 ( Örnek : 2013-04-12T15:52:01+0000)
  • DATE_RFC822 – RFC 822 ( Örnek : Fri, 12 Apr 13 15:52:01 +0000)
  • DATE_RFC850 – RFC 850 ( Örnek : Friday, 12-Apr-13 15:52:01 UTC)
  • DATE_RFC1036 – RFC 1036 ( Örnek : Fri, 12 Apr 13 15:52:01 +0000)
  • DATE_RFC1123 – RFC 1123 ( Örnek : Fri, 12 Apr 2013 15:52:01 +0000)
  • DATE_RFC2822 – RFC 2822 (Örnek: Fri, 12 Apr 2013 15:52:01 +0000)
  • DATE_RFC3339 DATE_ATOM ile aynıdır (PHP 5.1.3 ve sonrası)
  • DATE_RSS – RSS (Örnek: Fri, 12 Aug 2013 15:52:01 +0000)
  • DATE_W3C – World Wide Web Consortium (Örnek: 2013-04-12T15:52:01+00:00)

Örnek-1

Aşağıda, date_i18n() fonksiyonunun $tarih_formatı parametresi ile farklı kullanım örnekleri verilmiştir:

echo date_i18n(DATE_RFC2822); // Çıktısı: Çar, 10 Tem 2019 20:48:26 +0300
echo date_i18n('d M Y H:i:s l'); // Çıktısı: 10 Tem 2019 20:49:56 Çarşamba
echo date_i18n('d/m/Y H:i:s'); // Çıktısı: 10/07/2019 20:51:50
echo date_i18n('d/m/y H:i').' Günlerden: '.date_i18n('l'); // Çıktısı: 10/07/19 20:55 Günlerden: Çarşamba 

$sapmalı_zaman_mührü

(int|bool) Unix zaman mührü ile saniye olarak zaman dilimi sapmasının toplamıdır. Varsayılan değeri false olarak ayarlanmıştır.

$gmt_dilimi

(bool) Saat dilimi olarak Greenwich (GTM) kullanılıp kullanılmayacağını ifade eder. Varsayılan olarak false değerini alır. Sadece zaman mührüne ulaşılamadığında geçerlidir.

Döndürdüğü değer:

Yerel dil destekleniyorsa, tercüme edilmiş tarih textini döndürür.

Kaynak kodu:

Dizini : wp-includes/functions.php

function date_i18n( $dateformatstring, $timestamp_with_offset = false, $gmt = false ) {
    global $wp_locale;
    $i = $timestamp_with_offset;
 
    if ( false === $i ) {
        $i = current_time( 'timestamp', $gmt );
    }
 
    /*
     * Store original value for language with untypical grammars.
     * See https://core.trac.wordpress.org/ticket/9396
     */
    $req_format = $dateformatstring;
 
    $dateformatstring = preg_replace( '/(?<!\\\\)c/', DATE_W3C, $dateformatstring );
    $dateformatstring = preg_replace( '/(?<!\\\\)r/', DATE_RFC2822, $dateformatstring );
 
    if ( ( ! empty( $wp_locale->month ) ) && ( ! empty( $wp_locale->weekday ) ) ) {
        $datemonth            = $wp_locale->get_month( date( 'm', $i ) );
        $datemonth_abbrev     = $wp_locale->get_month_abbrev( $datemonth );
        $dateweekday          = $wp_locale->get_weekday( date( 'w', $i ) );
        $dateweekday_abbrev   = $wp_locale->get_weekday_abbrev( $dateweekday );
        $datemeridiem         = $wp_locale->get_meridiem( date( 'a', $i ) );
        $datemeridiem_capital = $wp_locale->get_meridiem( date( 'A', $i ) );
        $dateformatstring     = ' ' . $dateformatstring;
        $dateformatstring     = preg_replace( '/([^\\\])D/', "\\1" . backslashit( $dateweekday_abbrev ), $dateformatstring );
        $dateformatstring     = preg_replace( '/([^\\\])F/', "\\1" . backslashit( $datemonth ), $dateformatstring );
        $dateformatstring     = preg_replace( '/([^\\\])l/', "\\1" . backslashit( $dateweekday ), $dateformatstring );
        $dateformatstring     = preg_replace( '/([^\\\])M/', "\\1" . backslashit( $datemonth_abbrev ), $dateformatstring );
        $dateformatstring     = preg_replace( '/([^\\\])a/', "\\1" . backslashit( $datemeridiem ), $dateformatstring );
        $dateformatstring     = preg_replace( '/([^\\\])A/', "\\1" . backslashit( $datemeridiem_capital ), $dateformatstring );
 
        $dateformatstring = substr( $dateformatstring, 1, strlen( $dateformatstring ) - 1 );
    }
    $timezone_formats    = array( 'P', 'I', 'O', 'T', 'Z', 'e' );
    $timezone_formats_re = implode( '|', $timezone_formats );
    if ( preg_match( "/$timezone_formats_re/", $dateformatstring ) ) {
        $timezone_string = get_option( 'timezone_string' );
        if ( false === $timestamp_with_offset && $gmt ) {
            $timezone_string = 'UTC';
        }
        if ( $timezone_string ) {
            $timezone_object = timezone_open( $timezone_string );
            $date_object     = date_create( null, $timezone_object );
            foreach ( $timezone_formats as $timezone_format ) {
                if ( false !== strpos( $dateformatstring, $timezone_format ) ) {
                    $formatted        = date_format( $date_object, $timezone_format );
                    $dateformatstring = ' ' . $dateformatstring;
                    $dateformatstring = preg_replace( "/([^\\\])$timezone_format/", "\\1" . backslashit( $formatted ), $dateformatstring );
                    $dateformatstring = substr( $dateformatstring, 1, strlen( $dateformatstring ) - 1 );
                }
            }
        } else {
            $offset = get_option( 'gmt_offset' );
            foreach ( $timezone_formats as $timezone_format ) {
                if ( 'I' === $timezone_format ) {
                    continue;
                }
 
                if ( false !== strpos( $dateformatstring, $timezone_format ) ) {
                    if ( 'Z' === $timezone_format ) {
                        $formatted = (string) ( $offset * HOUR_IN_SECONDS );
                    } else {
                        $prefix    = '';
                        $hours     = (int) $offset;
                        $separator = '';
                        $minutes   = abs( ( $offset - $hours ) * 60 );
 
                        if ( 'T' === $timezone_format ) {
                            $prefix = 'GMT';
                        } elseif ( 'e' === $timezone_format || 'P' === $timezone_format ) {
                            $separator = ':';
                        }
 
                        $formatted = sprintf( '%s%+03d%s%02d', $prefix, $hours, $separator, $minutes );
                    }
 
                    $dateformatstring = ' ' . $dateformatstring;
                    $dateformatstring = preg_replace( "/([^\\\])$timezone_format/", "\\1" . backslashit( $formatted ), $dateformatstring );
                    $dateformatstring = substr( $dateformatstring, 1 );
                }
            }
        }
    }
    $j = @date( $dateformatstring, $i );
 
    /**
     * Filters the date formatted based on the locale.
     *
     * @since 2.8.0
     *
     * @param string $j          Formatted date string.
     * @param string $req_format Format to display the date.
     * @param int    $i          A sum of Unix timestamp and timezone offset in seconds.
     * @param bool   $gmt        Whether to use GMT timezone. Only applies if timestamp was
     *                           not provided. Default false.
     */
    $j = apply_filters( 'date_i18n', $j, $req_format, $i, $gmt );
    return $j;
}

Kullanımı:

Date_i18n() fonksiyonunun, ilk parametresi olan $tarih_formatı parametresi zorunludur. Diğer parametreler, içinde bulunduğumuz zaman dilimini otomatik olarak algılar ve fonksiyon, sadece ilk parametresi ile kullanıldığında, sitenin diline göre tercüme ederek, o anki tarihi verir.

Örnek-1

Date_i18n() fonksiyonunun, temanın tarih ayarları ile birlikte kullanımına dair örnektir:

$datetime = date_i18n(get_option('date_format'), current_time('timestamp')) .' @ '. date_i18n(get_option('time_format'), current_time('timestamp'));
echo $datetime;

// Çıktısı
// 10 Temmuz 2019 @ 22:42

Örnek-2

Aşağıdaki örnek, belirtilen bir zamanı, yönetim panelinde, Ayarlar->Genel sayfasında ayarlanan tarih biçimine uygun olarak tercüme eder ve gösterir:

$tarih = "11/19/1995";
echo date_i18n( get_option( 'date_format' ), strtotime($tarih) );

// Çıktısı
// 19 Kasım 1995

Yukarıdaki kodda görülen get_option( 'date_format' ) fonksiyonu, temanın tarih biçimini, strtotime( '11/19/1995' ) fonksiyonu ise 19 Kasım 1995 tarihine ait zaman mührünü getirir.

Örnek-3

$gmt_dilimi argümanı, $sapmalı_zaman_mührü argümanı kullanıldığında etkisiz kalır. Aşağıda bunu kanıtlayan bir örnek verilmiştir:

$gmt_tarihi = '2018-12-03 00:00:00';
 
echo '$gmt_dilimi = false iken: ' . date_i18n('d/m/y -- h:i:s', strtotime($gmt_tarihi)) . '<br>';
echo '$gmt_dilimi = true iken: ' . date_i18n('d/m/y -- h:i:s', strtotime($gmt_tarihi), true) . '<br>';


// Çıktılar birbiri ile aynı olacaktır:
// $gmt_dilimi = false iken: 03/12/18 -- 12:00:00
// $gmt_dilimi = true iken: 03/12/18 -- 12:00:00

Örnek-4

Verilen bir tarihi, temanın tarih biçimine, UTC zaman dilimine göre +11 dilim ileriye götürerek hesaplar ve tercüme ederek ekrana bastırır:

$tarih = '2019-06-07 00:35:32'; // 6 Haziran 2019 00:35
$yeni_tarih = date_i18n( get_option( 'date_format' ).' @ '.get_option('time_format'), strtotime( $tarih . '+11' ) );
echo $yeni_tarih;

// Çıktısı
// 6 Haziran 2019 @ 13:35

veya aynı kodu şöyle de kullanabiliriz:

$yeni_tarih = date_i18n( get_option( 'date_format' ).' @ '.get_option('time_format'), strtotime( '2019-06-07 00:35:32+11' ) );
echo $yeni_tarih;

// Çıktısı
// 6 Haziran 2019 @ 13:35

Örnek-5

36900 saniye geriden gelen, yani 11 zaman dilimi batıdaki bir ülkede, şu anda tarihin ne olduğunu şu kodla görebiliriz:

$yeni_tarih = date_i18n( 'd/m/Y H:i:s', time()-36900 );
echo $yeni_tarih;

// Şu Anki Tarih:
// 11/07/2019 00:56:22

// Kodun Çıktısındaki Tarih:
// 10/07/2019 11:41:22

DERSİN SONU

Kimya Özel Dersi Al

Yorum yaparak bize destek olabilirsiniz.

Bir cevap yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu kadar HTML serbest:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>