Senin, 21 Februari 2011

0

Mengetahui Nama Hari pada Tanggal Tertentu dengan PHP

  • Senin, 21 Februari 2011
  • Bina Blogger
  • Share
  • Pada artikel ini akan dibahas mengenai cara pembuatan script PHP untuk menampilkan nama hari pada tanggal tertentu. Sebagai contoh misalkan diberikan suatu tanggal 11 September 2001, nah kita ingin mengetahui hari apakah itu? OK kita akan segera mengetahuinya dengan script PHP yang akan kita buat.

    Dalam PHP belum ada suatu perintah langsung untuk mengetahui nama hari pada tanggal tertentu. Untuk itu kita harus membuat scriptnya sendiri.
    Sebagai pendahuluan, terlebih dahulu saya kenalkan dengan suatu function dalam PHP untuk menampilkan nama hari pada current date (tanggal saat ini). Function ini adalah:

    date("l");

    dengan parameter l (L kecil) merupakan format specifier untuk menampilkan nama hari.  Sedangkan date() sendiri adalah function untuk memperoleh current date. Sehingga apabila diberikan script berikut ini

    <?php
    echo date("l");
    ?>
     
    akan menghasilkan output Monday (dengan asumsi tanggal pada saat menjalankan script adalah tanggal 28 Juli 2008).
    Lantas bagaimana jika ingin menampilkan hari pada tanggal tertentu?  Sabar… kita membuat cara lain untuk mengakalinya.
    Dalam PHP, kita bisa menampilkan nama hari pada n hari ke depan atau ke belakang setelah hari ini (current date), yaitu dengan menggunakan function mktime(). Contoh:
     
    <?php
    // menampilkan nama hari pada 2 hari ke depan
    $x  = mktime(0, 0, 0, date("m"), <strong>date("d")+1</strong>,  date("Y"));
    echo date("l", $x);
    
    // menampilkan nama hari pada 5 hari sebelumnya
    $x  = mktime(0, 0, 0, date("m"), <strong>date("d")-5</strong>,  date("Y"));
    echo date("l", $x);
    ?>
    Sehingga dari keterangan di atas, dapat disimpulkan bahwa untuk mendapatkan nama hari pada tanggal tertentu dengan menggunakan mktime() 
    kita harus tahu terlebih dahulu selisih hari antara tanggal tertentu tersebut dengan tanggal pada hari ini (current date). Dengan demikian 
    rumus umum mktime() nya adalah
     
    mktime(0, 0, 0, date("m"), <strong>date("d")+n</strong>,  date("Y")); 
    Yang menjadi pertanyaan sekarang adalah, bagaimana cara menentukan  selisih hari antara current date dengan tanggal tertentu, jika tanggal  tersebut sudah diketahui? Nah… kita manfaatkan saja query SQL sebagai  mana yang telah dibahas pada artikel PHP tentang Pencarian Selisih Waktu.
    Berdasarkan logika di atas, sudah dapat kita buat script untuk menampilkan nama hari pada tanggal tertentu.

    <?php
    mysql_connect("namahost","dbuser","dbpass");
    mysql_select_db("dbname");
    
    $tanggal = "2001-09-11"; // tgl yang akan dicari nama harinya
    
    $query = "SELECT datediff('$tanggal', CURDATE()) as selisih";
    $hasil = mysql_query($query);
    $data  = mysql_fetch_array($hasil);
    
    $selisih = $data['selisih'];
    
    $x  = mktime(0, 0, 0, date("m"), date("d")+$selisih, date("Y"));
    echo date("l", $x);
    ?>
     
    dengan CURDATE() adalah function dalam SQL untuk mendapatkan current date.
    Setelah script di atas dijalankan, akan diperoleh nama hari pada tanggal 11 september 2001 adalah hari Tuesday (dalam bhs Inggris). Sekarang bagaimana jika menginginkan output nama harinya dalam bahasa Indonesia? Ya… tinggal gunakan IF saja

    <?php
    mysql_connect("namahost","dbuser","dbpass");
    mysql_select_db("dbname");
    
    $tanggal = "2001-09-11"; // tgl yang akan dicari nama harinya
    
    $query = "SELECT datediff('$tanggal', CURDATE()) as selisih";
    $hasil = mysql_query($query);
    $data  = mysql_fetch_array($hasil);
    
    $selisih = $data['selisih'];
    
    $x  = mktime(0, 0, 0, date("m"), date("d")+$selisih, date("Y"));
    $namahari = date("l", $x);
    
    if ($namahari == "Sunday") $namahari = "Minggu";
    else if ($namahari == "Monday") $namahari = "Senin";
    else if ($namahari == "Tuesday") $namahari = "Selasa";
    else if ($namahari == "Wednesday") $namahari = "Rabu";
    else if ($namahari == "Thursday") $namahari = "Kamis";
    else if ($namahari == "Friday") $namahari = "Jumat";
    else if ($namahari == "Saturday") $namahari = "Sabtu";
    
    echo $namahari;
    ?>

     

    0 Responses to “Mengetahui Nama Hari pada Tanggal Tertentu dengan PHP”

    Posting Komentar

    Subscribe