Posts Tagged ‘date’

Fungsi php simpan dan ambil tanggal/date pada mysql

This item was filled under [ Code Snippet, PHP ]

Berikut salah satu fungsi simpel yg sering digunakan untuk mengconvert guna untuk menyimpan ke mysql dan kebalikkannya, yaitu untuk menampilkan tanggal/date dengan format yg kita inginkan, pada fungsi ini yang kita inginkan adalah dd/mm/yyyy (tanggal/bulan/tahun).

// FUNGSI DATE CONVERT
function jin_date_sql($date){
	$exp = explode('/',$date);
	if(count($exp) == 3) {
		$date = $exp[2].'-'.$exp[1].'-'.$exp[0];
	}
	return $date;
}
 
function jin_date_str($date){
	$exp = explode('-',$date);
	if(count($exp) == 3) {
		$date = $exp[2].'/'.$exp[1].'/'.$exp[0];
	}
	return $date;
}

Cara penggunaannya adalah sbb.:
Convert dari tanggal DD/MM/YYYY ke YYYY-MM-DD untuk insert ke database mysql

$data_tanggal_form = "23/02/2009"; // DD/MM/YYYY
$data_tanggal_mysql = jin_date_sql($data_tanggal_form); // hasilnya: 2009-01-01 = YYYY-MM-DD

Dan kebalikannya, yaitu ingin menampilkan.
Convert dari tanggal YYYY-MM-DD ke DD/MM/YYYY untuk tampil ambil dari database mysql

$data_tanggal_db = "2009-01-01"; // YYYY-MM-DD
$data_tanggal_tampil = jin_date_str($data_tanggal_db); // hasilnya: 23/02/2009 = DD/MM/YYYY
1 Star2 Stars3 Stars4 Stars5 Stars (6 votes, average: 4.17 out of 5)
Loading ... Loading ...
Popularity: 7,839 views
Tagged with: [ , , ]

Mengambil nilai jarak antara dua tanggal (javascript)

This item was filled under [ Code Snippet, Javascript ]

Menampilkan jarak jumlah hari diantara 2 tanggal.
contoh:
tanggal mulai: 2009-01-29
tanggal akhir: 2009-02-03
hasil jarak tanggal dalam jumlah hari = 5

Fungsi scriptnya sbb, simpan dengan nama file datediff.js:

var DayName=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
 
var oneMinute=1000*60;
 
var intervalObject=new Object();
intervalObject["yyyy"]={units:1000*60*60*24*365,measure:"year"};
intervalObject["m"]={units:1000*60*60*24*30,measure:"month"};
intervalObject["d"]={units:1000*60*60*24,measure:"day"};
intervalObject["Q"]={units:intervalObject["m"].units*3,measure:"quarter"};
intervalObject["H"]={units:oneMinute*60,measure:"hour"};
intervalObject["N"]={units:oneMinute,measure:"minute"};
intervalObject["S"]={units:1000,measure:"second"};
 
 
function DateDiff(dateAddObj){
	this.interval=dateAddObj.interval;
	this.date1=dateAddObj.date1;
	this.date2=dateAddObj.date2;
	this.calculate=calculate;
	this.calculate();
}
 
Date.prototype.DateDiff=DateDiff;
 
 
 
 
function calculate(){
	var paramDate1=new String(this.date1);
	splitDate1=paramDate1.split("-");
	paramDateYear1=splitDate1[0];
	paramDateMonth1=splitDate1[1]-1;
	paramDateDay1=splitDate1[2];
	if(paramDateMonth1>12){
		alert("Invalid Month!");
		return false;
	}
	if(paramDateDay1>31){
		alert("Invalid Day!");
		return false;
	}
 
 
	var paramDate2=new String(this.date2);
	splitDate2=paramDate2.split("-");
	paramDateYear2=splitDate2[0];
	paramDateMonth2=splitDate2[1]-1;
	paramDateDay2=splitDate2[2];
	if(paramDateMonth2>12){
		alert("Invalid Month!");
		return false;
	}
	if(paramDateDay2>31){
		alert("Invalid Day!");
		return false;
	}
 
 
	var paramDate1Object=new Date(paramDateYear1,paramDateMonth1,paramDateDay1);
	paramDate1Object.setHours(0);
	paramDate1Object.setMinutes(0);
	paramDate1Object.setSeconds(0);
	//paramDate1Object.getTimezoneOffset() * oneMinute;
	var paramDate1ObjectTime=paramDate1Object.getTime();
 
 
	var paramDate2Object=new Date(paramDateYear2,paramDateMonth2,paramDateDay2);
	paramDate2Object.setHours(0);
	paramDate2Object.setMinutes(0);
	paramDate2Object.setSeconds(0);
	var paramDate2ObjectTime=paramDate2Object.getTime();
 
	if(paramDate2Object>paramDate1Object){
		DSTAdjust=(paramDate2Object.getTimezoneOffset() - paramDate1Object.getTimezoneOffset()) * oneMinute;
 
	}
	else{
		DSTAdjust=(paramDate1Object.getTimezoneOffset() - paramDate2Object.getTimezoneOffset()) * oneMinute;
	}
 
	if(typeof intervalObject[this.interval]!="undefined"){
		if(typeof intervalObject[this.interval].units=="undefined"){
			alert("Interval is invalid!");
			return false;
		}
 
		// var diff=Math.abs(paramDate2ObjectTime-paramDate1ObjectTime) - DSTAdjust;
		// yg ini saya ubah tidak memakai abs, supaya hasil minus tetap minus, berguna untuk validasi dll..
		var diff=(paramDate2ObjectTime-paramDate1ObjectTime) - DSTAdjust;
		var timeDiff=Math.floor(diff/intervalObject[this.interval].units);
		if(timeDiff>1){
			var rname=intervalObject[this.interval].measure + "s";
		}
		else{
			var rname=intervalObject[this.interval].measure;
		}
 
		this.difference=parseInt(timeDiff);
	}
	else{
		this.difference="Wrong format of interval!";
 
	}
 
}

Penggunaan:

<html>
<head>
<script type="text/javascript" src="datediff.js"></script>
</head>
 
<body>
 
<script type="text/javascript">
var curDate=new Date();
startDate="2009-02-02";
endDate="2009-01-30";
curDate.DateDiff({interval:"d",date1:startDate,date2:endDate});
alert(curDate.difference);
</script>
 
</body>

Maka hasilnya akan ada alert berjumlah: -3
Hasil minus disini bisa berguna untuk cek validasi dan lain2.. sesuaikan dgn kebutuhan aplikasi kita.

Sumber Core JS: http://www.softxml.com/jsdatefunctions/datefunctions.htm
Beberapa code telah dimodif, silahkan lihat komentar pada file script “datediff.js

Semoga bermanfaat :mrgreen:

1 Star2 Stars3 Stars4 Stars5 Stars (5 votes, average: 5.00 out of 5)
Loading ... Loading ...
Popularity: 4,125 views
Tagged with: [ , ]

Mengambil nilai jarak antara dua tanggal dan jam

This item was filled under [ Code Snippet, PHP ]

Fungsinya adalah sbb:

// DATE DIFF
function jin_date_diff($d1, $d2){
    $d1 = (is_string($d1) ? strtotime($d1) : $d1);
    $d2 = (is_string($d2) ? strtotime($d2) : $d2);
 
    $diff_secs = abs($d1 - $d2);
    $base_year = min(date("Y", $d1), date("Y", $d2));
 
    $diff = mktime(0, 0, $diff_secs, 1, 1, $base_year);
    return array(
        "years" => date("Y", $diff) - $base_year,
        "months_total" => (date("Y", $diff) - $base_year) * 12 + date("n", $diff) - 1,
        "months" => date("n", $diff) - 1,
        "days_total" => floor($diff_secs / (3600 * 24)),
        "days" => date("j", $diff) - 1,
        "hours_total" => floor($diff_secs / 3600),
        "hours" => date("G", $diff),
        "minutes_total" => floor($diff_secs / 60),
        "minutes" => (int) date("i", $diff),
        "seconds_total" => $diff_secs,
        "seconds" => (int) date("s", $diff)
    );
}

penggunaan:

$a = "2008-01-01 09:30:23";
$b = "2008-01-02 12:45:10";
$hasil = jin_date_diff($a, $b);
print_r($hasil);
// $hasil['years'] <-- jumlah tahun
// $hasil['days_total'] <-- jumlah total bulan
// $hasil['months'] <-- jumlah bulan
// $hasil['days'] <-- jumlah total hari
// dlsb.... (lihat pada fungsi)

maka akan keluar hasil array… lalu kita ambil yg kita perlukan dari array tersebut..

Update: saya ubah nama fungsinya menjadi jin_date_diff, karena date_diff sudah dipakai pada PHP 5.3.0 keatas akan tetapi berbeda hasil fungsi nya, silahkan lihat manualnya di http://id2.php.net/manual/en/function.date-diff.php

1 Star2 Stars3 Stars4 Stars5 Stars (8 votes, average: 5.00 out of 5)
Loading ... Loading ...
Popularity: 2,022 views
Tagged with: [ , , , ]

Halaman ini di eksekusi dalam waktu 1.577 detik! (koneksi mayan bagus nih...)