Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

SAYI ARTTIRMA i++

Konu, 'PHP' kısmında stronger07 tarafından paylaşıldı.

  1. stronger07

    stronger07 Üye

    Kayıt:
    21 Aralık 2013
    Mesajlar:
    78
    Beğenilen Mesajlar:
    1
    Merhaba arkadaşlar kolay gelsin.

    Örneğin bir sayım var.

    Sayı 615 bunu

    for($i=615;$i<20000000;$i++){
    echo $i;
    }

    bu şekilder arttırarak yazdırabiliyorum. Fakat benim istediğim arttırma işlemini her gece 12 de yapacak. Yani 25.07.2017 için 615 ise, 26.07.2017 için 616, 27.07.2017 için 617, 28.07.2017 için 618, 29.07.2017 için 619, 30.07.2017 için 620, 31.07.2017 için 621, 01.08.2017 için 622... Böyle böyle sınırsız şekilde devam edecek. Bunu yapamadım.

    Yardımcı olacak var mıdır acaba ?
     
  2. Furkan Onka Uğur

    Furkan Onka Uğur Moderatör Yetkili Kişi

    Kayıt:
    12 Eylül 2008
    Mesajlar:
    3,683
    Beğenilen Mesajlar:
    42
    Şehir:
    Ankara
    PHP ile bu işlem yapılır da amacı dışında saçma olur.

    Şöyle bir şey yapılabilir:

    SayıGuncelle.php
    PHP:
    @$sayi file_get_contents('sayininyazildigidosya.php');
    if (
    is_int($sayi) )
    {
       ++
    $sayi;
       
    file_put_contents('sayininyazildigidosya.php'$sayi);
    }
    SayıOku.php
    PHP:
    @$sayi file_get_contents('sayininyazildigidosya.php');
    if (
    is_int($sayi) )
    {
       
    $sayi;
    }
    else
    {
       
    $sayi 0;
    }
    SayiyiKullananSayfa.php
    PHP:
    require_once('SayıOku.php');

    //$sayi ile işlemler.
    cronjob ile php SayıGuncelle.php olarak her gece 12.00'da çalışacak şekilde bir iş oluşturmanız lazım.
     
    Son düzenleme: 25 Temmuz 2017
    yunus bunu beğendi.
  3. sedirAğacı

    sedirAğacı Daimi Üye

    Kayıt:
    2 Mart 2016
    Mesajlar:
    620
    Beğenilen Mesajlar:
    182
    Meslek:
    Bilgisayar programcısı.
    Şehir:
    Aydın
    Aslında tarihtende hesaplanabilir gibi. Saklamaya ve gece karanlığını beklemeye gerek kalmaz.o_O

    Yılın kaçıncı günü olduğunu bulan bir fonksiyon lazım. Belki PHP de vardır, yoksada yazmak lazım.
    615 üzerine eklenip gösterilecek.
    İlk yıl ve aktif yıl hesabı gerekiyor ve ara yıllar içinde o yıl kaç çekiyorsa eklenecek. 365 yada 366.

    :rolleyes: kod, yedeğimde olsa yapıştırırdım.
    soruyu yanlış anlamışsam, üstteki yazdıklarımı unutuuun. o_O

    örnek 2020 yılındayız.
    rakam = 615 + ilk yıl hesabı(yani programın ilk çalışmaya başladığı günden 2017 için yıl sonuna kadar kalan süre) + 2018 yılı gün toplamı + 2019 yılı gün toplamı + 2020 aktif yıl, bugün yılın kaçıncı günü hemşerim fonksiyonundan() gelen rakam.

    sadece 2 ek fonksiyon lazım.
    -hangi yıl kaç çekiyo.
    -Bugün, yılın kaçıncı günü.
     
    Son düzenleme: 25 Temmuz 2017
    yunus ve Furkan Onka Uğur bunu beğendi.
  4. stronger07

    stronger07 Üye

    Kayıt:
    21 Aralık 2013
    Mesajlar:
    78
    Beğenilen Mesajlar:
    1
    Furkan hocam sizin dediğiniz ile uğraştım, denedim fakat yapamadım. Yazımı tekrar okuduğumda tam olarak doğru anlatamamış olduğumu anladım. Sedir Ağacının dediği mantıkla daha kolay bir şekilde istediğimi yapabildim. İkinizin de eline koluna yüreğine sağlık. Saygılar sunuyorum.

    Benim gibi lazım olan birileri olursa diye paylaşıyorum. Şu şekilde olayı çözdüm.

    Öncelikle bugünün tarihi için $sayı 651 ise, $sayı 1 için hangi gündür onu buldum, 13.10.2015 'e denk geliyor. Tarih1 'i bu şekilde buldum.
    Bugünün tarihini de date("y-m-d") 'den çektim arasındaki gün farklarını buldum. Başlangıç günü otomatik olarak 13.10.2015 oldu. Ve hergün otomatik olarak aradaki fark artıyor.

    <?php
    $bugun=date("y-m-d");
    $tarih1 = strtotime("2015-10-13 00:00:00");
    $tarih2 = strtotime("".$bugun." 00:00:00");
    $gunsayisifarki = ($tarih2 - $tarih1) / (60*60*24);
    echo $gunsayisifarki;
    ?>
     
    yunus bunu beğendi.
  5. Furkan Onka Uğur

    Furkan Onka Uğur Moderatör Yetkili Kişi

    Kayıt:
    12 Eylül 2008
    Mesajlar:
    3,683
    Beğenilen Mesajlar:
    42
    Şehir:
    Ankara
    Hım, olay o ise daha kolay çözülebilir:

    PHP:
    <?php
    echo (new DateTime('13.10.2015'))->diff(new DateTime())->format('%R%a gün geçti');
    Daha açık olarak:
    PHP:
    $ilkTarih = new DateTime('13.10.2015');
    $bugun = new DateTime(); // now yani bugünü oluşturur.

    $tarihFarki $ilkTarih->diff($bugun);

    var_dump($tarihFarki);
     
    yunus, stronger07 ve sedirAğacı bunu beğendi.
  6. yunus

    yunus Daimi Üye

    Kayıt:
    26 Şubat 2015
    Mesajlar:
    517
    Beğenilen Mesajlar:
    124
    tarihe göre sayı belirlemek çok güzel fikir!

    işleri biraz daha basitleştirebiliriz belki.

    php de time() fonksiyonu : Unix Zaman Başlangıcından (1 Ocak 1970 00:00:00 GMT) itibaren geçen zamanı saniye cinsinden döndürür.

    bu fonksiyonu kullanarak gün sayısını hesaplayabiliriz. belirli bir sabit kullanarak da hangi gün hangi değeri alacağını belirleyebiliriz. time fonksiyonu hem kısmen daha hızlı çalışır, hemde bir nebze kod kalabalığından kurtuluruz.

    bir günde 86400 saniye olduğuna göre bu sayıya böleriz.

    bugün(07/08/2017) için 1 Ocak 1970 tarihinden itibaren geçen gün sayısı 17385. bu sabit değeri çıkararak her gün için bir artan sayı elde ederiz.

    PHP:
    $sayacfloor(time() / 86400) - 17385;
    yukarıdaki kod ile sayac değeri bugün 0 yarın ise 1 değerini alacak.
     
    Son düzenleme: 7 Ağustos 2017
    sedirAğacı bunu beğendi.
Benzer Konular
Yüklüyor...