Hati-Hati Menambahkan Bulan di JavaScript


Beberapa waktu yang lalu aku melakukan sedikit test untuk menambahkan tanggal tertentu sebanyak beberapa bulan.


Contoh script yang dipergunakan seperti di bawah ini

<cfoutput>
<script>
var date = new Date(2010, 10, 30);
var next3Months = new Date(date.getFullYear(), date.getMonth() + 3, date.getDate(), 0, 0, 0, 0);
document.write("JavaScript : " + next3Months);
</script>

<cfset date = CreateDate(2010, 11, 30)>
<cfset next3Months = DateAdd("m", 3, date)>
<p>ColdFusion : #next3Months#</p>

<cfquery name="qryMsSQL" datasource="dsnMsSQL">
	SELECT	DATEADD(MONTH, 3, <cfqueryparam cfsqltype="CF_SQL_DATE" value="#date#">) AS NEXT3MONTHS
</cfquery>

<cfdump var="#qryMsSQL#" label="MsSQL">

<cfquery name="qryOracle" datasource="dsnOracle">
	SELECT	ADD_MONTHS(<cfqueryparam cfsqltype="CF_SQL_DATE" value="#date#">, 3) AS NEXT3MONTHS
	FROM 	DUAL
</cfquery>

<cfdump var="#qryOracle#" label="Oracle">
<cfoutput>

Tanggal yang dipakai adalah tanggal 30 November 2010 ditambah 3 bulan.

Capture dari script di atas:

3 bulan setelah 2010-11-30

3 bulan setelah 2010-11-30

JavaScript menghasilkan tanggal 2 Maret 2011.
ColdFusion, MsSQL, dan Oracle menghasilkan tanggal 28 Februari 2011.

Bugs?
Bukan. Di JavaScript, script di atas diterjemahkan sebagai tanggal ke 30 dari bulan November 2010 yang telah ditambahkan sebanyak 3 bulan. Jika 3 bulan setelah November adalah bulan Februari, maka

var date = new Date(2011, 2, 30);

juga menghasilkan tanggal 2 Maret 2011.

One Response to Hati-Hati Menambahkan Bulan di JavaScript

  1. Wisnu mengatakan:

    hm, harusnya problem ini mungkin terjadi hanya utk kasus penambahan yg jatuh pada bulan februari aja kan ya ?

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: