ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptの日付と時刻関数(古典+完璧+実用)_時刻と日付

JavaScriptの日付と時刻関数(古典+完璧+実用)_時刻と日付

WBOY
リリース: 2016-05-16 18:52:28
オリジナル
918 人が閲覧しました

Date.prototype.isLeapyear 閏年を決定する
Date.prototype.Format 日付の書式設定
Date.prototype.DateAdd 日付の計算
Date.prototype.DateDiff 日付の差を比較
Date.prototype.toString 日付と文字String
Date.prototype.toArray 日付を配列に分割します
Date.prototype.DatePart 日付情報の一部を取得します
Date.prototype.MaxDayOfDate 日付が存在する月の最大日数を取得しますlocated
Date.prototype.WeekNumOfyear 判定 日付が位置する年の週
StringToDate 日付型への文字列
IsValidDate 日付の有効性を検証
CheckDateTime 日付と時刻のチェックを完了
日付と日付の間の日数日差

コードをコピー コードは次のとおりです:

//------------------------------------------ ------ ----------
// うるう年の決定
//--------------------- ----------- -----------------------
Date.prototype.isLeap Year = function()
{
return (0==this.getyear( )%4&&((this.getyear() 0!=0)||(this.getyear()@0==0)));
}
//-------- -------------------------------------- ------
//日付形式
//形式 YYYY/yyyy/YY/yy は年を表します
// MM/M 月
// W/w 週
/ / dd/DD/d/D 日付
// hh/HH/h/H 時刻
// mm/m 分
// ss/SS/s/S 秒
//- ------------ -------------------------------------- -------
Date.prototype.Format = function(formatStr )
{
var str = formatStr
var Week = ['日','一','二' ,'三','四','五','六']
str=str.replace(/yyyy|YYYY/,this.getFullyear()); yy|YY/,(this.getyear() % 100)>9?( this.getyear() % 100).toString():'0' (this.getyear() % 100)); =str.replace(/MM/,this.getMonth()>9?this .getMonth().toString():'0' this.getMonth()); g,this.getMonth());
str=str.replace(/ w|W/g,Week[this.getDay()]);
str=str.replace(/dd|DD/, this.getDate()>9?this.getDate().toString(): '0' this.getDate());
str=str.replace(/d|D/g,this.getDate() );
str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():'0' this.getHours()); =str.replace(/h|H/g,this.getHours());
str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString() :'0' this.getMinutes());
str=str.replace (/m/g,this.getMinutes());
str=str.replace(/ss|SS/,this.getSeconds) ()>9?this.getSeconds().toString():'0' this.getSeconds());
str=str.replace(/s|S/g,this.getSeconds()); 🎜>return str;
}
// ----- ----------------------------- ----------------
/ /| 2 つの時刻間の日数の差を求めます。日付形式は YYYY-MM-dd です。
// ----- ----------------------- -----------------------
関数daysBetween(DateOne,DateTwo)
{
var OneMonth = DateOne.substring(5,DateOne .lastIndexOf ('-'));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ( '-') 1);
var One Year = DateOne.substring(0,DateOne.indexOf ( '-'));
var TwoMonth = DateTwo.lastIndexOf ('-')) ;
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-') 1);
var Twoyear = DateTwo.substring(0,DateTwo.indexOf ('-')); >var cha=((Date.parse(OneMonth '/' OneDay '/' One Year)- Date.parse(TwoMonth '/' TwoDay '/' Two Year))/86400000);
return Math.abs(cha); ;
}
// ------------- ------------------------ --------------------
//| 日付計算
/ /----------------- -------------------------------- --
Date.prototype.DateAdd = function(strInterval, Number) {
var dtTmp = this;
switch (strInterval) {
case 's' :return new Date(Date.parse( dtTmp) (1000 * Number)); new Date(Date.parse(dtTmp) (60000 * Number));
case 'h' :return new Date(Date.parse(dtTmp) (3600000 * Number)); new Date(Date.parse(dtTmp) (86400000 * Number));
case 'w' :return new Date(Date.parse( dtTmp) ((86400000 * 7) * Number)); q' :return new Date(dtTmp.getFull Year(), (dtTmp.getMonth()) Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); 🎜>case 'm' :return new Date(dtTmp.getFull Year(), (dtTmp.getMonth()) Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()) ;
case 'y' :return new Date((dtTmp.getFull Year() Number), dtTmp.getMonth(), dtTmp.getDate( ), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds( ));
}
}
// ---------------- ------------------ ----------------
//| 日付の違いを比較します。 dtEnd 形式は日付タイプまたは有効な日付形式文字列です
// ---------- ---------------------------- -----------
Date.prototype.DateDiff = function(strInterval, dtEnd) {
var dtStart = this;
if (typeof dtEnd == 'string' )// 文字列が日付型に変換される場合
{
dtEnd = StringToDate(dtEnd) );
}
switch (strInterval) {
case 's' :return parseInt((dtEnd - dtStart) / 1000);
case 'n' :return parseInt((dtEnd - dtStart) / 60000);
case 'h' :return parseInt((dtEnd - dtStart) / 3600000);
case 'd ' :return parseInt((dtEnd - dtStart) / 86400000); ' :return parseInt((dtEnd - dtStart) / (86400000 * 7));
case 'm' :return (dtEnd.getMonth() 1) ((dtEnd.getFull Year()-dtStart.getFull Year())* 12) - (dtStart.getMonth() 1);
case 'y' :return dtEnd.getFull Year() - dtStart.getFull Year ();
//------------------------------------------ ------
//| システムの toString メソッドをオーバーロードした日付出力文字列
// ------------------------ -- -----------------------------
Date.prototype.toString = function(showWeek)
{
var myDate= this;
var str = myDate.toLocaleDateString();
if (showWeek)
{
var Week = ['日','一','二', '3' ,'four','five','six'];
str = 'week' Week[myDate.getDay()];
return
}
// ----------------------------------------------- --- -
//| 正当性の検証日
//| 形式は YYYY-MM-DD または YYYY/MM/DD
// ----------- --- -------------------------------------
関数 IsValidDate(DateStr)
{
var sDate=DateStr.replace(/(^s |s $)/g,''); // 両側のスペースを削除します。
if(sDate=='') return true; 🎜>//if 形式が YYYY-(/)MM-(/)DD または YYYY-(/)M-(/)DD または YYYY-(/)M-(/)D または YYYY-(/)MM を満たす場合-(/)D '' に置き換えます
//データベースでは、有効な日付は YYYY-MM/DD (2003-3/21) になります。データベースは自動的に YYYY-MM-DD 形式に変換されます
var s = sDate.replace (/[d]{ 4,4 }[-/]{ 1 }[d]{ 1,2 }[-/]{ 1 }[d]{ 1,2 }/g ,'');
if (s=='') //記述形式は YYYY-MM-DD または YYYY-M-DD または YYYY-M-D または YYYY-MM-D を満たす
{
var t=new Date(sDate.replace (/-/g,'/'));
var ar = sDate.split(/[-/:]/);
if(ar[0] ! = t.get Year() || ar [1] != t.getMonth() 1 || ar[2] != t.getDate())
{
//alert('日付の形式が間違っています!形式は、YYYY-MM-DD または YYYY/MM/DD です。閏年に注意してください。 ');
return false;
}
}
else
{
//alert('日付の形式が間違っています! 形式は YYYY-MM-DD または YYYY/MM /DD。閏年に注意してください。');
戻り値
}
戻り値
}
// ---------------------- - -----------------------------
//| 日付と時刻のチェック
//| 形式は次のとおりです。 YYYY-MM -DD HH:MM:SS
// --------------------------------- -------------- -------------
関数 CheckDateTime(str)
{
var reg = /^(d ) -(d{ 1,2 })-(d{ 1,2 }) (d{ 1,2 }):(d{ 1,2 }):(d{ 1,2 })$/; var r = str.match(reg);
if (r==null)return false;
r[2]=r[2]-1; ],r[2],r[3],r[4],r[5],r[6]);
if(d.getFullyear()!=r[1])return
if(d.getMonth()!=r[2])return false;
if(d.getDate()!=r[3])return false; r[4])return false;
if(d.getMinutes()!=r[5])return false; > true を返す
}
// - ------------------------------------ --------------
//| 日付を配列に分割します
// -------------------- -------------- ------------------
Date.prototype.toArray = function()
{
var myDate = this;
var myArray = Array();
myArray[1] = myDate.getMonth(); ] = myDate.getDate();
myArray[3] = myDate.getHours();
myArray[4] = myDate.getMinutes();
return myArray
}
// ----------------------------------- --------------- -
//| 日付データ情報を取得します
//| パラメータの間隔はデータ型を表します
//|日 w 週 ww 週 h 時 n 分 s 秒
// - --------------------------------- -----------------
Date.prototype.DatePart = function(interval)
{
var myDate = this; ;
var Week = ['日','一','二','三','四','五','六'];
スイッチ(間隔)
{
ケース 'y' :partStr = myDate.getFull Year();break;
ケース 'm' :partStr = myDate.getMonth() 1;break;
ケース 'd' :partStr = myDate.getDate() ;break;
case 'w' :partStr = Week[myDate.getDay()];break;
case 'ww' :partStr = myDate.WeekNumOf Year();break; partStr = myDate.getHours();break;
case 'n' :partStr = myDate.getMinutes();break;
case 's' :partStr = myDate.getSeconds();break;
partStr を返す
}
// -- --------------------------------- -------
//| 現在の日付の月の最大日数を取得します
//----------- ----------------------- -------------------
Date.prototype.MaxDayOfDate = function()
{
var myDate = this;
var ary = myDate .toArray();
var date1 = (new Date(ary[0],ary[1]) ));
var date2 = date1.dateAdd(1,'m',1);
var result = date1.Format('yyyy-MM-dd'),date2.Format('yyyy- MM-dd'));
結果を返します
}
// - ------------------------- -----------------------
//| 現在の日付が属する年の週を取得します。
// ---- ------------------------ ------------------------
Date.prototype.WeekNumOfyear = function()
{
var myDate = this;
var ary = myDate.toArray();
var year = ary[0]; = ary[1] 1;
var day = ary[2];
document.write('myDate = DateValue(') ' 月 '-' 日 '-' 年 '') n');
document.write ('result = DatePart('ww', myDate) n'); ;
結果を返す
}
// ------- ------------------------ --------------------
//| 文字列を日付型に変換します
//| 形式 MM/dd/YYYY MM-dd-YYYY YYYY/ MM/dd YYYY-MM-dd
// ------------- ------------------------ ---------------
function StringToDate(DateStr)
{
var Converted = Date.parse(DateStr)
var myDate = new Date(converted) );
if (isNaN(myDate))
{
//var delimCahar = DateStr.indexOf('/')!=-1?'/':'-'; = DateStr.split('-');
myDate = new Date(arys[0],--arys[1],arys[2]);
return myDate;


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート