Cara Mudah Menambah Dan Mengurangi Waktu Di PHP

Cara Mudah Menambah Dan Mengurangi Waktu Di PHP

Pembahasan kali ini saya akan membahas tentang bagaimana cara mengurangi dan menambah waktu di PHP, ada 2 opsi untuk melakukan ini, yaitu :
Syarat menggunakan fungsi ini, versi PHP harus lebih atau sama dengan 5.3 (>= 5.3).

Cara 1 :: class.dateinterval.php
Saat ini tanggal 13-02-2016, Kasusnya saya ingin menambah waktu 4 hari, sehingga output yang di hasilkan nanti akan menjadi 17-02-2016. Perhatikan code di bawah ini :

<?php
$date = new DateTime('2016-02-13');
$date->add(new DateInterval('P4D'));
echo $date->format('Y-m-d');
?>

Kasus kedua, saat ini tanggal 13-02-2016 dan waktu menunjukan 07:44:00 , Saya ingin menambah waktu sebanyak 7 jam 6 menit. Perhatikan code di bawah ini :

<?php
$date = new DateTime('2016-02-13 07:44:00');
$date->add(new DateInterval('P7H6I'));
echo $date->format('Y-m-d H:i:s');
?>
Keterangan :
  • P4D sama dengan menulis 4 days (D == days), cuma memang formatnya harus di awali dengan huruf P baru setelah itu di iringi dengan nilai penjumlahan waktu yang di inginkan.
  • Keterangan lebih lanjut :
    • D untuk days
    • M untuk months
    • W untuk week (menambah 7 hari) , 1W sama dengan 7 hari, 2W sama dengan 14 hari.
    • Y untuk years
    • S untuk seconds
    • H untuk hours
    • dan masih banyak lagi, lihat di situs resminya aja, http://php.net.


Cara 2 :: function.date-interval-create-from-date-string.php
Cara yang kedua ini hampir sama dengan cara satu, dan bisa di sebut lebih mudah di pahami tanpa harus melihat keterangannya. karena penggunaan fungsi ini ga ada yang disingkat seperti cara satu, dimana harus menuliskan P1D untuk menambah waktu 1 hari, jika tidak ada keterangannya orang ga bakal tau kalau itu berarti akan menambah waktu 1 hari dari waktu saat ini.

Cara ini agak sedikit panjang penulisan code nya, karena dari judulnya pun nama fungsinya sudah terlihat panjang haha, tapi saya merekomendasikan cara kedua ini, karena mudah untuk di pahami.

Saat ini waktu menunjukan 08:22:00 tanggal 13-02-2016, kasusnya, saya ingin menambah dan mengurangi waktu sebanyak 2 jam. Perhatikan code di bawah ini.

Menambah waktu 2 jam

<?php
$date = date_create('2016-02-13 08:22:00');
date_add($date, date_interval_create_from_date_string('2 hours'));
echo date_format($date, 'Y-m-d H:i:s');
?>

Mengurangi waktu 2 jam

<?php
$date = date_create('2016-02-13 08:22:00');
date_add($date, date_interval_create_from_date_string('-2 hours'));
echo date_format($date, 'Y-m-d H:i:s');
?>

Tidak perlu di jelaskan terlalu rinci, untuk menggunakan cara kedua ini kamu cukup sebutkan saja waktu yang akan kamu operasikan. misal :
Ingin menambah waktu 1 tahun , cukup sebutkan 1 years, untuk menguranginya cukup tulis -1 years. atau kamu ingin menambahkan dan mengurangi 1 hari, cukup tuliskan 1 days atau -1 days.
Untuk keterangan waktu harus berbentuk plural, di akhiri dengan huruf S , seperti (days, years, hours, minutes, seconds, dan lain-lain).

Mungkin pembahasan kali ini saya cukupkan sampai disini saja, semoga jelas. Komentar saja jika ada yang kurang paham.

Danke :)

6/Post a Comment/Comments

  1. mantap pak.. saya searching sana sini ngga jadi jadi eh ketemu di sini langsung jadi... alhamdulillah.. josssss

    BalasHapus
    Balasan
    1. Terima kasih, semoga bisa menambah wawasannya :)

      Hapus
  2. sudah saya format date nya yg keluar nya ttp bentuk object, gimana kalo mau convert ke string? atau ke dateTime? karna saya mau cari selisih pake date diff fungsi itu tidak mau hasil nya objek

    BalasHapus
  3. bisa pakai strtotime("11-01-2019") untuk konversi ke string

    BalasHapus
  4. itu kang cahya saya coba pake -2 day ga ngurangi malah nambah
    akhirnya saya coba ini berhasil
    date_add untuk menambahkan
    date_sub untuk mengurangi

    BalasHapus
  5. @lamlota biar gampang gini aja, mau nambah atau ngurangin tinggal di ganti operator matematikanya aja :

    $a= "2019-09-11";
    $b= strtotime($a . "-2days");
    echo date("Y-m-d", $b);

    //result : 2019-09-09

    BalasHapus

Posting Komentar

Lebih baru Lebih lama