|
intra-mart ® 7.2 patch09 Client Side JavaScript | |||||||
前 次 | フレームあり フレームなし |
日付(時間)データ操作関数群。
サンプルコード
サンプル(.htmlファイル) |
---|
・ ・ ・ <script src="csjs/im_date.js"></script> ・ ・ <!-- ボタンを押すと、2002年02年29日が日付として正しいかどうか判定します --> <input type="button" onClick="alert(isDateData(2002, 02, 02));"> ・ ・ ・ |
メソッドの概要 | |
static Boolean
|
isDateData(<Number> nYear, <Number> nMonth, <Number> nDay, <Number> nHour, <Number> nMinutes, <Number> nSecond)
日付として正しいかどうか判定します。 |
static Boolean
|
isLeapYear(<Number> nYear)
指定の年が閏年かどうか判定します。 |
static Object
|
padZero( target , len )
|
static Date
|
parseW3CDTFLocalized(<String> datestring)
toW3CDTFLocalized 関数で変換したW3CDTF形式の文字列をDateオブジェクトに戻します。 |
static String
|
toW3CDTFLocalized(<Date> date)
引数に与えられたDateオブジェクトをW3CDTF形式の文字列に変換します。 |
/** * @fileoverview 日付(時間)データ操作関数群。<br/> * <br/> * <strong>サンプルコード</strong> </a><br/> * <br/> * <table border="1"> * <tr> * <th> * サンプル(.htmlファイル) * </th> * </tr> * <tr> * <td> * <font size="-1"> <pre> ・ ・ ・ <script src="csjs/im_date.js"></script> ・ ・ <!-- ボタンを押すと、2002年02年29日が日付として正しいかどうか判定します --> <input type="button" onClick="alert(isDateData(2002, 02, 02));"> ・ ・ ・ </pre> * </font> * </td> * </tr> * </table> * * @version 1.0 * @since 3.1 * @author INTRAMART */ /** * 日付として正しいかどうか判定します。<br/> * <br/> * 与えられた数値の組合わせが日付(および時間)を表す情報として正しいかどうかを判定します。<br/> * この関数は、閏年の判定も行っているので、2月29日に関しても正しく判定することができます。<br/> * * @param {Number} nYear 年 * @param {Number} nMonth 月 * @param {Number} nDay 日 * @param {Number} nHour [option] 時間 (省略可能) * @param {Number} nMinutes [option] 分 (省略可能) * @param {Number} nSecond [option] 秒 (省略可能) * @return 指定の数値データが日付として正しい場合 true、そうでない場合false。 * @type Boolean */ function isDateData(nYear, nMonth, nDay, nHour, nMinutes, nSecond){ /* check the arguments(all value to integer) */ nYear = parseFloat(nYear); if(isNaN(nYear)) { nYear = 0; } nMonth = parseFloat(nMonth); if(isNaN(nMonth)) { nMonth = 0; } nDay = parseFloat(nDay); if(isNaN(nDay)) { nDay = 1; } nHour = parseFloat(nHour); if(isNaN(nHour)) { nHour = 0; } nMinutes = parseFloat(nMinutes); if(isNaN(nMinutes)){ nMinutes = 0; } nSecond = parseFloat(nSecond); if(isNaN(nSecond)) { nSecond = 0; } /* make the month's index */ var nMonth_ID = parseFloat(nMonth) -1; /* make the target date variable */ var dDate = new Date(nYear, nMonth_ID, nDay, nHour, nMinutes, nSecond); /* compareation date data */ return ((dDate.getMonth() == nMonth_ID) && (dDate.getDate() == nDay) && (dDate.getHours() == nHour) && (dDate.getMinutes() == nMinutes) && (dDate.getSeconds() == nSecond)); } /** * 指定の年が閏年かどうか判定します。<br/> * <br/> * 与えられた数値を西暦年として閏年計算をします。 * * @param {Number} nYear 年 * @return 指定の年が閏年の場合 true、そうでない場合false。 * @type Boolean */ function isLeapYear(nYear){ return ((nYear % 4 == 0) && (nYear % 100 != 0)) || (nYear % 400 == 0) } /** * 引数に与えられたDateオブジェクトをW3CDTF形式の文字列に変換します。 * 精度はミリ秒、タイムゾーンはクライアント環境のものを使用します。 * @param {Date} date 日付型のオブジェクト * @type String **/ function toW3CDTFLocalized(date){ if(!date) return null; var str = date.getFullYear() + "-" + padZero( (date.getMonth() + 1), 2) + "-" + padZero( date.getDate(), 2 ) + "T" + padZero( date.getHours() , 2) + ":" + padZero( date.getMinutes() , 2) + ":" + padZero( date.getSeconds(), 2) + "," + padZero( date.getMilliseconds(),3); var offset = date.getTimezoneOffset(); if( offset < 0 ){ offset *= -1; str += "+" + padZero(Math.floor( offset/60 ),2) + ":" + padZero(offset % 60, 2); }else{ str += "-" + padZero(Math.floor( offset/60 ),2) + ":" + padZero(offset % 60, 2); } return str; } function padZero( target , len ){ for( var ret =target+""; ret.length < len; ret = "0" + ret ); return ret; } /** * toW3CDTFLocalized 関数で変換したW3CDTF形式の文字列をDateオブジェクトに戻します。 * 書式は yyyy-MM-ddThh:mm:ss.sTZD 形式に対応します。 * * @param {String} datestring 日付を表す文字列 * @type Date **/ function parseW3CDTFLocalized(datestring){ var re = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})[,.](\d+)*([\+\-Z])((\d{2}):(\d{2})){0,1}/; var s = datestring.match(re); var datestr = s[1] +"/" +s[2] +"/" +s[3] +" " +s[4] +":" +s[5] +":" +s[6] +" GMT"; newdate = Date.parse( datestr ) + parseInt(s[7],10); var k = +1; var tz = ( s[8] == "Z" ) ? "00:00" : ( s[10] + ":" + s[11] ); var mp = ( s[8] == "-" ) ? -1 : 1; newdate -= k * Date.parse('1970/01/01 '+ tz +' GMT') * mp; return new Date(newdate); } /* End of File */
|
intra-mart ® 7.2 patch09 Client Side JavaScript | |||||||
前 次 | フレームあり フレームなし |