TELAH DIBUKA !!!

Toko Ebook Tutorial "RosihanAri.Net"


Free Ebook Tutorial from Rosihan Ari's Blog

Tutorial Javascript | Tutorial PHP Dasar | Tutorial AJAX | Tutorial CSS | Tutorial FPDF | Tutorial Wordpress



Slot iklan tersedia, pasang iklan di atas

Ebook yang direkomendasikan untuk Anda
Ebook Panduan Praktis OOP di PHP

Menentukan Tanggal n Hari Berikutnya dan n Hari Sebelumnya Dari Tanggal Hari Ini


April 22nd, 2010 | by rosihanari | Cetak Artikel Cetak Artikel

Dalam blog ini telah banyak saya bahas mengenai pengolahan tanggal. Namun sepertinya untuk menentukan tanggal dari n hari sesudah dan n hari sebelum tanggal hari ini belum pernah saya bahas.

Suatu ketika tentu kita pernah dihadapkan pada suatu kasus untuk menentukan tanggal n hari berikutnya dan n hari sebelumnya dari hari ini. Sebagai contoh misalnya dalam kasus peminjaman buku atau rental secara umum. Biasanya ketika terjadi transaksi peminjaman, sudah ditentukan batas waktu lamanya peminjaman. Sebagai contoh misalnya suatu rental menentukan maks lama peminjaman adalah 7 hari. Jika seseorang meminjam tanggal 20 April 2010, maka seharusnya si peminjam mengembalikan pinjamannya maksimal tanggal 27 April 2010. Sehingga jika pengembaliannya setelah tanggal 27 April maka diberikan denda.

Dari kasus di atas, tentunya untuk menentukan n hari ke depan setelah hari ini menjadikan problem tersendiri bagi seorang programmer. Tapi jangan khawatir, karena dengan PHP untuk menentukan tanggal n hari ke depan dan n hari sebelumnya dari tanggal hari ini dapat dilakukan dengan sangat mudah.

Adapun konsep untuk menyelesaikan masalah di atas adalah kita manfaatkan function mktime() di dalam PHP. Function mktime() ini digunakan untuk mendapatkan timestamp pada n hari ke depan dan n hari sebelumnya dari hari ini di dalam PHP. Selanjutnya timestamp yang diperoleh ini kita gunakan untuk menentukan tanggal pada n hari berikutnya dan n hari sebelum hari ini menggunakan function date(). Function date() merupakan function yang digunakan untuk mengatur format tanggal sesuai timestampnya.

Wah apa itu Timestamp? Timestamp adalah bilangan integer yang menyatakan waktu dalam satuan detik antara tanggal 1 Januari 1970 00:00:00 GMT sampai dengan waktu yang telah ditentukan.

OK berikut ini adalah contoh implementasi ide di atas untuk menentukan tanggal 10 hari berikutnya dan 10 hari sebelumnya dari tanggal sekarang.

<?php
$n = 10;

// menentukan timestamp 10 hari berikutnya dari tanggal hari ini
$nextN = mktime(0, 0, 0, date("m"), date("d") + $n, date("Y"));

// menentukan timestamp 10 hari sebelumnya dari tanggal hari ini
$prevN = mktime(0, 0, 0, date("m"), date("d") - $n, date("Y"));

// menampilkan tanggal 10 hari berikutnya dari tanggal hari ini berdasarkan timestamp nya
echo date("d-m-Y", $nextN);

echo "<br>";

// menampilkan tanggal 10 hari sebelumnya dari tanggal hari ini berdasarkan timestamp nya
echo date("d-m-Y", $prevN);
?>

Dari contoh di atas sebenarnya kita bisa kembangkan lagi untuk mendapatkan tanggal pada n bulan ke depan dan n bulan sebelumnya terhitung dari tanggal hari ini, yaitu dengan membuat timestampnya terlebih dahulu sbb:

// menentukan timestamp n bulan berikutnya dari tanggal hari ini
$nextN = mktime(0, 0, 0, date("m") + $n, date("d"), date("Y"));

// menentukan timestamp n bulan sebelumnya dari tanggal hari ini
$prevN = mktime(0, 0, 0, date("m") - $n, date("d"), date("Y"));

Demikian pula bila kita ingin menentukan tanggal n tahun berikutnya dan n tahun sebelumnya terhitung dari tanggal hari ini dengan terlebih dahulu membuat timestampnya sbb:

// menentukan timestamp n tahun berikutnya dari tanggal hari ini
$nextN = mktime(0, 0, 0, date("m"), date("d"), date("Y") + $n);

// menentukan timestamp n tahun sebelumnya dari tanggal hari ini
$prevN = mktime(0, 0, 0, date("m"), date("d"), date("Y") - $n);

Lantas… bagaimana bila untuk menentukan tanggal dari 3 bulan lebih 2 hari berikutnya dari tanggal hari ini? ya… cukup mudah saja kawan, secara umum untuk menentukan tanggal dari m bulan lebih n hari dari tanggal hari ini adalah membuat timestamp terlebih dahulu dengan perintah

// menentukan timestamp m bulan lebih n hari berikutnya dari tanggal hari ini
$nextN = mktime(0, 0, 0, date("m") + $m, date("d") + $n, date("Y"));

OK deh, mudah bukan membuat scriptnya? selamat mencoba dan semoga bermanfaat ya…


Baca Juga Artikel Terkait
Menentukan Nama Hari Pasaran Jawa Dari Tanggal Tertentu dengan PHP
Mengetahui Nama Hari pada Tanggal Tertentu dengan PHP
Mencari Selisih Hari dari Dua Buah Tanggal dengan PHP (Tanpa Query SQL)
Menghitung Jumlah Hari Minggu Antara Dua Tanggal
Editing Data Tanggal via Form dengan PHP



Slot iklan tersedia, pasang iklan di atas


Kata kunci: date php - operasi tanggal - php script - script tanggal - tanggal php -


Ada 13 komentar dalam artikel ini.



  1. pard1 says:

    mas, saya mengalami kesulitan dalam mengexsport data excel ke mysql.. yaitu mengenai date excel.. sebelum nya saya convert dulu date nya biar.. bisa dibaca php, yang jd masalah ketika datenya dibawa 1 jan 1970 akan mengalami error.. gmn yah mas solusinya ?

  2. captbbx says:

    makasih pak… saya sangat terbantu dengan adanya artikel ini… salam kenal… :D

  3. tady says:

    bagaimana dengan menentukan tanggal dari hari yang sudah ditentukan….???

    dan juga bagaimana dengan script php input image dinamis, contohin donk dengan tabel databasenya juga……..???

    (ada beberapa saya cari script2 php, ko banyak yang mirip dengan anda, persis banget pembahasannya, apa dari sumber yang sama, ato itu copas dari blog anda, or sebaliknya………)

    • rosihanari says:

      @tady: menentukan tanggal dari hari yang sudah ditentukan itu maksudya gimana ya? he 3x.. yang jelas semua script yang saya tulis di sini hasil pemikiran dan ide saya sendiri mas… kalo yang lain kurang tahu…

  4. tady says:

    jadi contohnya :
    jadi selalu mendeteksi tanggal pada hari yang kita tentukan, misal hari senen sekarang tgl 01-01-2010 ketika lewat tanggal itu, maka akan mendeteksi tanggal berikutnya untuk hari senin tu, terus begitu, gmn ya mas…???

  5. tady says:

    kalo langsung ditambahkan dengan angka 7, maka yang dideteksi 7 hari dari tiap hari sekarang

  6. sendy says:

    Pak, tutorialnya cukup membantu, pak saya lagi buat TA mengenai SI PUSTAKA ONLINE. Masalahnya :

    1.Ketika pengembalian hari ke 7 ternyata hari minggu dan hari libur, maka dilewatkan dan ditambah sebanyak pengecekan libur.Kondisi, hari libur disimpan dalam dbase.Mohon pencerahanya pak..

    contoh :
    inisialisasi :
    tgl_libur 08-07-2010 s/d 10-07-2010
    hari minggu tgl 11-07-2010

    tgl peminjaman 01-07-2010 >hasil yg diinginkan tanggal 12-07-2010. gimana caranya pak? codingnya please..

    • rosihanari says:

      @sendy: wah kalo ngecek hari libur selain hari minggu sulit mas, anda harus buat list hari liburnya dulu. Lalu nanti dilookup ke list tsb.

  7. Anas says:

    Assalamualaikum Wr. Wb.
    Wah blog anda benar2 sangat membantu :)
    Salam kenal mas, langsung aja ya,
    saya buat kalkulasi tanggal menggunakan “strtotime()” dan date(“d-m-Y”)” tapi saya kesulitan membuat fungsi PHP-nya supaya hasilnya bisa langsung tampil.
    Kasusnya => V_Awal + Vhari = V_Akhir
    Dimana format V_Awal dan V_Akhir = dd-mm-yyy, untuk Vhari format angka biasa.
    V_Awal saya rubah dengan strtotime(V_Awal), sedangkan Vhari adalah “kelipatan 86400″(detik dlm 1 Hari) dan hasilnya saya kembalikan ke format tanggal dengan “date(“d-m-Y”, V_Akhir)”. Dan hasilnya nihil :( alias nggak terjadi apa2, tolong donk. Maklum mas, saya baru belajar.
    Wassalamualaikum Wr. Wb. terimakasih

  8. Galih Widagdo says:

    Assalamualaikum Wr. Wb.
    mau nanya solusi..saya sedang membuat si seminar.dalam penginputan seminar kan ada tanggal pelaksanaan dan batas pendaftaaran,bagaimana cara agar tanggal batas pendaftaran dan pelaksanaan dapat divalidasi

    1.inputan tanggal pendaftaran harus lebih kecil(lebih dulu dari tanggal pelaksanaan
    2.inputan tanggal pelaksanaan dan batas pendaftaran seminar tidak boleh tanggal yang sudah terlewat(tanggal sebelum hari ini)”
    semoga dapat diberi pencerahannya
    Wassalamualaikum Wr. Wb. terimakasih

  9. anggita says:

    pak jika menghitung total denda yang lewat dari tanggal pengembalian itu gimana pak??