Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

tarih zaman dilimi hakkında

Konu, 'PHP' kısmında Adem GENÇ tarafından paylaşıldı.

  1. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    872
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    merhaba,

    acemice hobi olarak yapmaya çalıştığım bir görev zamanlayıcı var, görev eklerken ilerki bir ay, gün saat dakika seçip kaydediyoruz bu kayıt zamanı unix zaman damgası 1375489380 kayediyoruz burada sorun yok

    zamanı gelen varmı diye şimdiki zaman ile kayıtlı zamanı "time()" bununla kontrol ediyorum ama time() zamanı geri gösteriyor.
    yani, saat 7 de ayarladığım zaman saat 10 da çalışıyor bu zaman farkını nasıl ayarlayıp unix zaman damgası alırım?
     
  2. sefa1471

    sefa1471 Üye

    Kayıt:
    13 Mart 2014
    Mesajlar:
    156
    Beğenilen Mesajlar:
    16
    Meslek:
    Öğrenci
    Şehir:
    Ankara
    Timezone ayarlı mı? Kontrol et büyük ihtimalle ayarlı değildir.
    PHP:
    date_default_timezone_set('Europe/Istanbul');
     
  3. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    872
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    verdiğiniz bu kodu zaten kullanıyorum ama olmuyor
    bugün saat 11:30 olarak zamanlayıcıyı kaydettin sonuç bu 1540200600
    verdiğiniz kod ile bugün saat 11:30 da time() bunla aldığım sonuç 1540197001

    ancak bu şekilde yaptığımda tarih saat doğru ama bana time() ile alınan sonuç doğru anlık zaman olacak
    echo "Şimdi Tarihi:".(date("d-m-Y H:i:s",time()));
    çıktı: Şimdi Tarihi:22-10-2018 11:30:01
    YADA
    ülkemiz için doğru tarihin ve saatın unix zaman damgasını nasıl elde edebilirim
     
  4. sefa1471

    sefa1471 Üye

    Kayıt:
    13 Mart 2014
    Mesajlar:
    156
    Beğenilen Mesajlar:
    16
    Meslek:
    Öğrenci
    Şehir:
    Ankara
    Merhaba,
    Server üzerinden ini dosyasına müdahale edebiliyor musunuz? Edebiliyorsunuz ayarı vardı.
    İkinci yöntemi vereyim hic ini ayarı yapmadan kolaylıkla kullanabilirsiniz.
    Burada yaptığımızı anlatayım tarih ve saati anlık olarak çekip unix'e çeviriyorum.
    Not: Zamanlayıcı da saatin saniyesini alıyorsanız digerinin saniyesini almayı unutmayın.
    PHP:
    date_default_timezone_set('Europe/Istanbul');
    $unix_zaman strtotime(date("d-m-Y H:i:s"));
    echo 
    $unix_zaman;
     
  5. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    872
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    cevap için teşekkürler
    php.ini ve sunucuya mudahele edebiliyorum hatta virtual server i Europe/Istanbul diye ayarlı ama unix zaman değeri türkiye saatı olarak gelmiyor
    verdiğiniz kod türkiye saati unix değeri vermiyor

    Biraz detaylı anlatayım,
    Bir formdan haftanın günü, ayın günü, saati ve dakikayı seçerek gönder dediğimde bu mktime ile unix zamanı veritabanına yazıyorum
    NOT: aldığım unix zamanı zaman dilimine gerek kalmadan belirlediğim tam tarih ve saat BURADA SORUN YOK
    PHP:
    mktime ($hour$minute$second$month$day$year);
    SORUN BUNDAN SONRA
    veritabanına yazdığım unix zamanı çekiyorum ve şimdiki unix zamanı eşleşiyormu yoksa daha küçükmü diye kontrol ediyorum
    PHP:
    if(time()<=$veritabani_unix_zamani){
    echo 
    "şimdiki zamana eşit veya geçti";
    }else{
    echo 
    "şimdiki zaman veritabanının zamanına daha var";
    }
    Sorun bu, şimdiki zamanı "time()" ile aldığımda yerel zaman değil ana sunucu zamanın unix zamanını veriyor böyle olunca ana sunucu yerele göre saati ne kadar geri ise o kadar zaman geciktiriyor.

    Yani, ben saat 8:00 diye görev verdiğimde bu görev saat 12:00 de çalışıyor eğer ana sunucu 2 saat geri ise.

    Sayfaya bu "date_default_timezone_set('Europe/Istanbul');" zaman dilimi koysamda "time()" ile yine ana sunucu zamanın unix değerini veriyor

    Madem veritabanına unix zamanı yazarken mktime verdiğim zamanı yerel veya ana sunucu saatına bakmadan unix zamanı veriyorsa bende aşağıdaki gibi zaman dilimi ile yerel zamanı aldım sonra parçaladım sonra zamanları mktime verdim ama yine ana sunucu zamanın unix zamanı veriyor
    PHP:
    date_default_timezone_set('Europe/Istanbul');
    $tamzaman date("H,i,s,m,d,Y");
    $tek explode (",",$tamzaman);
    echo 
    mktime ($tek[0], $tek[1], $tek[2], $tek[3], $tek[4], $tek[5]);

    ANA SUNUCU ZAMANI DEĞİL YEREL ZAMANIN UNIX ZAMANINI NASIL ALABİLİRİM?
     
    Son düzenleme: 23 Ekim 2018
  6. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    872
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Sorunu buldum ama nasıl çözeceğimi bilmiiyorum

    Bir sayfada hem yerel zaman dilim kodu ve unix zaman oluşturma kodu olursa zaman yerel saate göre doğru ancak unix zamanı oluştururken ana sunucu saatini dikkate alıyor
    PHP:
     date_default_timezone_set('Europe/Istanbul');
    $tamzaman date("H,i,s,m,d,Y");
    $tek explode (",",$tamzaman);
    echo 
    mktime ($tek[0], $tek[1], $tek[2], $tek[3], $tek[4], $tek[5]); 
    Şöyle yaparsak oluyor ama ama nasil kombine edeceğim

    sayfa1.php
    PHP:
     date_default_timezone_set('Europe/Istanbul');
    $tamzaman date("H,i,s,m,d,Y");
    Bu sayfada yerel zaman alınıyor

    sayfa2.php
    PHP:
    $tek explode (",",$tamzaman);
    echo 
    mktime ($tek[0], $tek[1], $tek[2], $tek[3], $tek[4], $tek[5]); 
    sayfa1.php den alınan tam yerel zaman bu sayfa2.php getirip unix zaman oluşturduğumuzda tam istediğim yerel zamanın unix zamanını alıyorum

    Sorum şu:
    sayfa1.php oluşan tam yerel zamanı sayfa2.php ye getirip php değişkene nasıl atayacağım?

    sayfa2.php içine ajax kodu ekledim sayfa1.php yerel zamanını getirdim ama php değişkene atayamadım nette o kadar baktım bulamadım yada başka nasıl yaparım?
    PHP:
    <script src="http://code.jquery.com/jquery.js"></script>
    <script type="text/javascript">
          $.ajax({
             url: "canlisaat.php",
             success: function(guncelsaat){
             $("#guncelsaat").text(guncelsaat);
             }
          });
    </script>

    <div id="guncelsaat"></div>