Menghitung selisih tanggal di php

21/02/2019    Shelli Ripati    21194    Website

Menghitung selisih tanggal di php

Fungsi date_diff() adalah fungsi yang mulai ada pada PHP versi 5.3.0. Fungsi date_diff() ini berfungsi untuk membantu kita dalam menghitung selisih waktu dengan format penulisannya seperti yang ada di bawah ini.

date_diff($waktuawal, $waktuakhir);

atau

$diff  = date_diff( $waktuakhir, $waktuawal);

Format $waktuawal di posisi pertama dan $waktuakhir di posisi kedua atau sebaliknya itu sama aja dan tidak ada perbedaan.

Isi format data $waktuawal dan $waktuakhir harus berupa objek DateInterval, dimana objek ini bisa kita buat dengan menggunakan fungsi date_create()pada php. Seperti contoh script di bawah ini.

<?php

$waktuawal  = date_create('2018-02-21 09:00:00'); //waktu di setting

$waktuakhir = date_create(); //2019-02-21 09:35 waktu sekarang

$diff  = date_diff($waktuawal, $waktuakhir);

echo 'Selisih waktu: ';

echo $diff->y . ' tahun, ';

echo $diff->m . ' bulan, ';

echo $diff->d . ' hari, ';

echo $diff->h . ' jam, ';

echo $diff->i . ' menit, ';

echo $diff->s . ' detik, ';

// Output : Selisih waktu: 0 tahun, 11 bulan, 30 hari, 18 jam, 35 menit, 11 detik

echo '<br> Total selisih hari adalah: ' . $diff->days;

//Output : Total selisih hari adalah: 364

Objek DateInterval dari fungsi date_diff()pada php juga mempunyai sebuah method format yang dapat digunakan untuk menghasilkan sebuah output dengan format tertentu, dan berikut ini adalah script php dengan method format.

$diff  = date_diff( date_create('1992-09-06'), date_create() );

echo $diff->format('<br>Usia anda adalah %Y tahun %m bulan %d hari');

// Output : Usia anda adalah 26 tahun 5 bulan 15 hari

echo $diff->format('Usia anda adalah %a hari');

Cara untuk mencetak waktu dengan method format yaitu dengan tanda persen (%) pada contoh diatas %Y , %m dan %d

  • Tahun: Y untuk 4 digit tahun (1992) dan y untuk 2 digit tahun (92).
  • Bulan: M untuk 2 digit bulan (05) dan m untuk 1 digit bulan (5).
  • Tanggal: D untuk 2 digit tanggal (05) dan d untuk 1 digit tanggal (5).
  • Jam: H untuk 2 digit jam (05) dan h untuk 1 digit jam (5).
  • Menit: I untuk 2 digit menit (05) dan i untuk 1 digit menit (5).
  • Detik: S untuk 2 digit detik (05) dan s untuk 1 digit detik (5).
  • Hari: a untuk total beda waktu dalam hari. Misal: 356 Hari

Demikian artikel tentang Cara Menghitung Selisih Waktu Dengan Fungsi Date Diff PHP. Semoga dapat bermanfaat dan selamat mencoba.

No data.

Menghitung selisih tanggal di php

Tutorial PHP — Hai gengs, pada artikel kali ini kita akan mempelajari cara menghitung waktu dengan menggunakan PHP.

Disini kita akan menentukan tanggal awal dan tanggal akhir yang nantinya jumlah selisih hari akan dihitung oleh program yang kita buat.

Kita menggunakan fungsi date_diff() untuk menghitung selisih waktu dan dilanjut dengan membuat format penulisan yang akan ditampilkan kelayar browser.

Baiklah, langsung saja berikut kode PHP-nya.

<?php$selisih = 'Pilih tanggal terlebih dahulu';if (isset($_POST['submit'])) {
$date1 = date_create($_POST['date1']);
$date2 = date_create($_POST['date2']);
$diff = date_diff($date1, $date2);$selisih = $diff->format('Selisih %R%a hari');
}
?><!DOCTYPE html>
<html>
<head>
<title>Menghitung selisih waktu dengan PHP</title>
<!-- Bootstrap -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
</head>
<body>
<div class="container mt-5 text-center">
<h2>Menghitung selisih waktu dengan PHP</h2>
<div class="card mt-5">
<div class="card-body mx-auto">
<form class="form-inline" method="post" action="">
<label for="date1">DateTime1&nbsp;</label>
<input type="date" name="date1" id="date1" class="form-control mr-2" required>
<label for="date2">DateTime2&nbsp;</label>
<input type="date" name="date2" id="date2" class="form-control mr-2" required>
<button name="submit" type="submit" class="btn btn-primary">Hitung</button>
</form>
<br><h2><?= $selisih ?></h2>
</div>
</div>
</div>
</body>
</html>

Menghitung selisih tanggal di php

Penjelasan:

<?php 
$selisih = 'Pilih tanggal terlebih dahulu';
if (isset($_POST['submit'])) {
$date1 = date_create($_POST['date1']);
$date2 = date_create($_POST['date2']);
$diff = date_diff($date1, $date2); $selisih = $diff->format('Selisih %R%a hari');
}
?>

Berikut penjelasan singkat untuk masing — masing fungsi diatas:

  • date_create() : Membuat sebuah object DateTime baru.
  • date_diff() : Menghitung selisih antara tanggal pertama dan tanggal kedua.
  • $diff->format() : Mengembalikan tanggal yang diformat pada variabel $diff sesuai dengan format yang ditentukan.

Jika kalian bingung pada bagian “%R%a” berikut adalah penjelasannya.

Catatan: setiap karakter format harus diawali dengan tanda %

  • % — Literal%
  • Y — tahun, setidaknya 2 digit dengan awalan nol (misalnya 03)
  • y — tahun (misalnya 3)
  • M — bulan, dengan awalan nol (misalnya 06)
  • m — bulan (misalnya 6)
  • D — hari, dengan awalan nol (misalnya 09)
  • d — hari (misalnya 9)
  • a — jumlah hari sebagai hasil dari date_diff()
  • H - jam, dengan awalan nol (misalnya 08, 23)
  • h - jam (mis 8, 23)
  • I - menit, dengan awalan nol (misalnya 08, 23)
  • i - menit (mis 8, 23)
  • S - detik, dengan awalan nol (misalnya 08, 23)
  • s - detik (misalnya 8, 23)
  • F - mikrodetik, minimal 6 digit (misalnya 004403, 235689)
  • f - mikrodetik (misalnya 4403, 235689)
  • R - sign "-" ketika negatif, "+ " ketika positif
  • r - sign "-" ketika negatif, kosong ketika positif