English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScriptで現在の日付と時間を取得およびフォーマットするコード

本文は皆さんにJsで現在の日付と時間を取得し、フォーマットする操作を共有しました。具体的な内容は以下の通りです

var myDate = new Date();
myDate.getYear();    //現在西暦の取得(2位)
myDate.getFullYear();  //完全な西暦の取得(4位,1970-????)
myDate.getMonth();    //現在月(0-11,0は1月)
myDate.getDate();    //現在日(1-31)
myDate.getDay();     //現在曜日X(0-6,0は日曜日を表します)
myDate.getTime();    //現在時刻(から1970.1.1開始のミリ秒数)
myDate.getHours();    //現在時数(0-23)
myDate.getMinutes();   //現在分数(0-59)
myDate.getSeconds();   //現在秒数(0-59)
myDate.getMilliseconds();  //現在ミリ秒数(0-999)
myDate.toLocaleDateString();   //現在日期の取得
var mytime=myDate.toLocaleTimeString();   //現在時刻の取得
myDate.toLocaleString( );    //日期と時間の取得

日期時間スクリプトライブラリのメソッドリスト
Date.prototype.isLeapYear 判定西暦の閏年
Date.prototype.Format 日期フォーマット
Date.prototype.DateAdd 日期計算
Date.prototype.DateDiff 日期差比較
Date.prototype.toString 日期を文字列に変換
Date.prototype.toArray 日期を配列に分割
Date.prototype.DatePart 日期の部分情報取得
Date.prototype.MaxDayOfDate 日期がその月の最大日数を取得
Date.prototype.WeekNumOfYear 日期がその年の何週目か判定
StringToDate 文字列を日付型に変換
IsValidDate 日期の有効性確認
CheckDateTime 完全な日時チェック
daysBetween 日期の日数差 

jsコード:

//--------------------------------------------------- 
// 判定西暦の閏年 
//--------------------------------------------------- 
Date.prototype.isLeapYear = function()  
{  
  return (0==this.getYear()%)4&&((this.getYear()%100!=0)||(this.getYear()%400==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());  
  str=str.replace(/yy|YY/,(this.getYear() % 100)>9?(this.getYear() % 100).toString():'0'; + (this.getYear() % 100));  
  str=str.replace(/MM/,this.getMonth()>9?this.getMonth().toString():'0'; + this.getMonth());  
  str=str.replace(/M/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=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'; +   
  str=str.replace(/s|S/g,this.getSeconds());  
  return str;  
}  
//+--------------------------------------------------- 
//求两个时间的天数差 日期格式为 YYYY-MM-dd  
//+--------------------------------------------------- 
function daysBetween(DateOne, DateTwo) 
{  
  var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('- 
  var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1); 
  var OneYear = DateOne.substring(0,DateOne.indexOf ('- 
  var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('- 
  var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1); 
  var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('- 
  var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/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)); 
    case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number)); 
    case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number)); 
    case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number)); 
    case 'w' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number)); 
    case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); 
    case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()))} + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); 
    case 'y' :return new Date((dtTmp.getFullYear() + 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); 
    case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7)); 
    case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1); 
    case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear(); 
  } 
} 
//+--------------------------------------------------- 
//| 日期出力文字列、システムのtoStringメソッドをオーバーライド 
//+--------------------------------------------------- 
Date.prototype.toString = function(showWeek) 
{  
  var myDate= this; 
  var str = myDate.toLocaleDateString(); 
  if (showWeek) 
  {  
    var Week = ['日','月','火','水','木','金','土']; 
    str +=' 星期' + Week[myDate.getDay()]; 
  } 
  return str; 
} 
//+--------------------------------------------------- 
//| 日期合法性验证 
//| フォーマットが:YYYY-MM-DDまたはYYYY/MM/DD 
//+--------------------------------------------------- 
function IsValidDate(DateStr)  
{  
  var sDate=DateStr.replace(',/(^\s+|\s+$)/g,''); //両端のスペースを取り除きます;  
  if(sDate=='') return true;  
  //フォーマットが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.getYear() || 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。注意:閏年。');  
    return false;  
  }  
  return true;  
}  
//+--------------------------------------------------- 
//| 日期時間チェック 
//| フォーマットが:YYYY-MM-DD HH:MM:SS 
//+--------------------------------------------------- 
function CheckDateTime(str) 
{  
  var reg = /^(\d+)-(\d{ 1,2 })-(\d{ 1,2 }) (\d{ 1,2 }):(\d{ 1,2 }):(\d{ 1,2 })$/month = month  
  var r = str.match(reg);  
  if(r==null)return false;  
  r[2]=r[2]-1month = month  
  var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]);  
  if(d.getFullYear()!=r[1})return false;  
  if(d.getMonth()!=r[2})return false;  
  if(d.getDate()!=r[3})return false;  
  if(d.getHours()!=r[4})return false;  
  if(d.getMinutes()!=r[5})return false;  
  if(d.getSeconds()!=r[6})return false;  
  return true;  
}  
//+--------------------------------------------------- 
//| 日期を配列に分割 
//+--------------------------------------------------- 
Date.prototype.toArray = function() 
{  
  var myDate = this; 
  var myArray = Array(); 
  myArray[0] = myDate.getFullYear(); 
  myArray[1] = myDate.getMonth(); 
  myArray[2] = myDate.getDate(); 
  myArray[3] = myDate.getHours(); 
  myArray[4] = myDate.getMinutes(); 
  myArray[5] = myDate.getSeconds(); 
  return myArray; 
} 
//+--------------------------------------------------- 
//| 日期データ情報を取得 
//| パラメータintervalはデータタイプを示します 
//| y年m月d日w週ww週h時n分s秒 
//+--------------------------------------------------- 
Date.prototype.DatePart = function(interval) 
{  
  var myDate = this; 
  var partStr=''; 
  var Week = ['日','月','火','水','木','金','土']; 
  switch (interval) 
  {  
    case 'y' :partStr = myDate.getFullYear();break; 
    case 'm' :partStr = myDate.getMonth()+1;break; 
    case 'd' :partStr = myDate.getDate();break; 
    case 'w' :partStr = Week[myDate.getDay()];break; 
    case 'ww' :partStr = myDate.WeekNumOfYear();break; 
    case 'h' :partStr = myDate.getHours();break; 
    case 'n' :partStr = myDate.getMinutes();break; 
    case 's' :partStr = myDate.getSeconds();break; 
  } 
  return partStr; 
} 
//+--------------------------------------------------- 
//| 現在の月の最大の日数を取得 
//+--------------------------------------------------- 
Date.prototype.MaxDayOfDate = function() 
{  
  var myDate = this; 
  var ary = myDate.toArray(); 
  var date1 = (new Date(ary[0],ary[1]+1,1)); 
  var date2 date1.dateAdd(1,'m',1); 
  var result = dateDiff(date1.Format('yyyy-MM-dd'),date2.Format('yyyy-MM-dd 
  return result; 
} 
//+--------------------------------------------------- 
//| 現在の日付が年に何週目にあるか取得 
//+--------------------------------------------------- 
Date.prototype.WeekNumOfYear = function() 
{  
  var myDate = this; 
  var ary = myDate.toArray(); 
  var year = ary[0]; 
  var month = ary[1]+1month = month 
  var day = ary[2]; 
  document.write('< script language=VBScript\> \n'); 
  document.write('myDate = Datue('+month+'-'+day+'-'+year+'') \n'); 
  document.write('result = DatePart('ww', myDate) \n'); 
  document.write(' \n'); 
  return result; 
} 
//+--------------------------------------------------- 
//| 字符串を日付型に変換  
//| 格式 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?'/':'-'; 
    var arys= DateStr.split('-'); 
    myDate = new Date(arys[0],--arys[1],arys[2]); 
  } 
  return myDate; 
} 

以下のような時報を実現するには:
2012年12月03日 17:21:16 月曜日

 //ローカル時報
function clockon() {
  var now = new Date();
  var year = now.getFullYear(); //getFullYear getYear
  var month = now.getMonth();
  var date = now.getDate();
  var day = now.getDay();
  var day = now.getDay();
  var hour = now.getHours();
  var minu = now.getMinutes();
  var sec = now.getSeconds();
  var week; + 1month = month
  ; 10) month = "0" + month;
  if (date < 10) date = "0" + date;
  if (hour < 10) hour = "0" + hour;
  if (minu < 10) minu = "0" + minu;
  if (sec < 10) sec = "0" + sec;
  var arr_week = new Array("日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日");
  week = arr_week[day];
  var time = "";
  time = year + "年" + month + "月" + date + "日" + " " + hour + : + minu + : + sec + " " + week;
  $("#bgclock").html(time);
  var timer = setTimeout("clockon()", 200);
}

これで本文の全てです。皆様の学習に役立てば幸いです。また、呐喊教程を多くの皆様に支持していただけると嬉しいです。

声明:本文の内容はインターネットから収集され、著作権者に帰属します。インターネットユーザーにより自発的に貢献し、自己でアップロードされた内容です。本サイトは所有権を持ちません。人工編集は行われていません。著作権侵害が疑われる場合は、メールを notice#w までお送りください。3codebox.com(メール送信時は、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認が取れましたら、本サイトは侵害疑いの内容をすぐに削除します。)

おすすめ