Beli Modem Wavecom Untuk SMS Gateway. FREE E-book Gammu + FREE Ongkos kirim !!
Ingin Punya Script SMS Gateway dengan PHP + MySQL?

Dapatkan segera phpSMS V3.0, software SMS Gateway multi fungsi berbasis web buatan saya sendiri untuk keperluan Anda.
[Info Lengkap...]

Mengetahui Nama Hari pada Tanggal Tertentu dengan PHP


July 28th, 2008 | by rosihanari | Cetak Artikel Ini Cetak Artikel Ini

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);

?&gt;

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.

&lt;?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);
?&gt;

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

&lt;?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;

?&gt;

Mudah bukan membuatnya? :-)

VN:F [1.9.3_1094]
Rating: 10.0/10 (1 vote cast)
Mengetahui Nama Hari pada Tanggal Tertentu dengan PHP, 10.0 out of 10 based on 1 rating
Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?



Beberapa artikel terkait


Share this article on:

Kata kunci: PHP -


Ada 13 komentar dalam artikel ini.

  1. agoeztavo says:

    wah… thanks banyak bos… sangat membantu bgt tuh..

  2. gusman says:

    mas bisa kasi tahu bagaimana cara untuk mencari nama hari dengan tanggal, bulan, dan tahun di input oleh user dalam bahasa c++

  3. surya says:

    makasih banyak mas, saya juga sangat terbantu sekali dengan adanya artikel ini…

  4. syam says:

    mas kalo databasenya pake access gimana yang menggunakan odbc,,,,,,,,thanks sebelum dan sesudahnya.

  5. rosihanari says:

    to syam: wah belum pernah eksperimen mas, kalo toh gak bisa… ya terpaksa harus scripting di PHP nya :-)

  6. ucen says:

    saya akan coba neh script,,,,,terima kasih banyak Mas…!!

  7. surya says:

    asalamu’alaikum pak ari…
    saya mantan mahasiswa pak ari dari fmipa uns :-)
    saya mau tanya pak…
    saya ingin mengetahui nama pasaran hari dengan php, mungkin pak ari bisa memberi petunjuk.
    trima kasih sebelumnya

  8. rosihanari says:

    @surya: wah.. kok ada pasaran segala, mo buat ramalan primbon ya? :-) maaf mas, saya blm punya ide dan scriptnya, Kalo anda sudah mendapat hubungan antara tanggalan/hari di kalender gregorian dengan hari pasaran. ketemulah formulanya. Yang menjadi masalah adalah saya blm tahu hubungan antara keduanya.

  9. Oscar says:

    Pak, kalo untuk menampilkan tanggal besok atau besok lusa dengan script php gmn y ? Tolong dibahas :)

  10. rosihanari says:

    @oscar: pake perintah ini mas

    $besok  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
    echo date("d-m-Y", $besok);
  11. boyboy says:

    blog yg bagus.

    [ask]
    yg tertulis di atas kan hanya membandingkan tanggal bgitu,,

    kalo pengecekan di lakukan dengan tanggal dan jam nya sekaligus bagaimana ya pak ?

    contoh kasus :
    1 id hanya bisa mem-vote untuk 1 product sebanyak 1x saja dalam 1 hari.

  12. Go zu says:

    mas saya kan di suruh nyatuin tanggal ma no pendaftaran jd gmn dunk hasilnya hrs kaya gini
    B2010081201 gth contohnya 2010 thn 08 bln 12tanggal 01 seleksi amn dunk mas pake php maaf kl ganggu n suka nanya trus



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word