DateFn.php 1.23 KB
<?php

/**
 * @Author: irul
 * @Date:   2019-09-20 14:56:04
 * @Last Modified by:   irul
 * @Last Modified time: 2019-10-01 23:44:58
 */

namespace Integrasi\Reklame\Helper;

class DateFn
{
	/**
	 * Fungsi untuk mendapatkan selisih bulan antara dua tanggal.
	 * @param  date $dateStart Tanggal awal
	 * @param  date $dateEnd   Tanggal akhir
	 * @return int
	 */
	public static function monthDiff($dateStart, $dateEnd)
	{
		$monthStart = date('m', strtotime($dateStart));
		$monthEnd   = date('m', strtotime($dateEnd));
		$yearStart  = date('Y', strtotime($dateStart));
		$yearEnd    = date('Y', strtotime($dateEnd));
		return $monthEnd - $monthStart + (12 * ($yearEnd - $yearStart));
	}

	/**
	 * Fungsi untuk mendapatkan jumlah hari dalam bulan dan tahun tertentu
	 * @param  int $month Bulan
	 * @param  int $year  Tahun
	 * @return int
	 */
	public static function daysInMonth($month, $year)
	{
		return date('t', strtotime("$year-$month-1"));
	}

	/**
	 * Fungsi untuk mendapatkan selisih hari antara dua tanggal.
	 * @param  date $dateStart Tanggal awal
	 * @param  date $dateEnd   Tanggal akhir
	 * @return int
	 */
	public static function dayDiff($dateStart, $dateEnd)
	{
		return round((strtotime($dateEnd) - strtotime($dateStart)) / (60 * 60 * 24));
	}
}