JavaScript タイムスタンプ関数を取得する 5 つの方法

1.JavasCRIPTタイムスタンプ

JavaScript がタイムスタンプを取得する方法は 5 つあります. 後者の 4 つは、時間オブジェクトをインスタンス化してnew Date()現在のタイムスタンプをさらに取得する方法です. JavaScript は主に時間オブジェクトを処理時間に使用しますDate.

方法 1: Date.now()

Date.now() は現在のタイムスタンプを取得できます。

console.log(Date.now()) //1642471441587

方法 2: Date.parse()

Date.parse() は、文字列または時刻オブジェクトをタイムスタンプに直接変換します。

Date.parse(new Date()) //1642471535000
Date.parse("2022/1/18 10:05") //1642471500000

注: この方法は推奨されません。ミリ秒レベルの値は 000 に変換されます。

方法 3: valueOf()

正確なタイムスタンプ値は、valueOf() 関数を介して指定されたオブジェクトの元の値を返すことによって取得されます。

(new Date()).valueOf() //1642471624512

方法 4: getTime()

プロトタイプ メソッドを使用して、現在の時間のミリ秒値を正確に取得します。

new Date().getTime() //1642471711588

方法 5: 数

時間オブジェクトを数値型の値、つまりタイムスタンプに変換します

Number(new Date()) //1642471746435

2、js タイムスタンプから時刻へ

new Date(时间戳)フォーマット変換を使用して現在の時刻を取得できます。次に例を示します。

new Date(1472048779952)
Wed Aug 24 2016 22:26:19 GMT+0800 (中国标准时间)

** 注: タイムスタンプ パラメータはNumber型で。文字列の場合、解析結果: Invalid Date. **

バックエンドがタイムスタンプをフロントエンドに直接返す場合、フロントエンドはそれをどのように変換しますか? 次の 2 つの実装方法が導入されています。

方法 1: 「2022/1/18 10:09 am」形式を生成する

解決策 1: .toLocaleString().replace(/:\d{1,2}$/,' ')

function getLocalTime(n) {
    
       
   return new Date(parseInt(n)).toLocaleString().replace(/:\d{1,2}$/,' ');   
}   
getLocalTime(1642471746435) //'2022/1/18 上午10:09 '

シナリオ 2: .toLocaleString().substr(0,14)

次のように使用することもできます。必要なだけ桁数を取ります。スペースもカウントされることに注意してください。

function getLocalTime(n) {
    
       
    return new Date(parseInt(n)).toLocaleString().substr(0,14)
}   
getLocalTime(1642471746435) //'2022/1/18 上午10'

解決策 3: Regular.toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ")

または、正規表現を使用します。

function  getLocalTime(n){
    
    
   return new Date(parseInt(n)).toLocaleString().replace(/年|月/g, "-").replace(//g, " ");
}
getLocalTime  (1642471746435)  //'2022/1/18 上午10:09:06'

方法 2: 「yyyy-MM-dd hh:mm:ss」形式を生成する

最初にデータ オブジェクトに変換してから、スプライシングの正則化やその他の手段を使用して、次のことを実現します。

function getData(n){
    
    
  n=new Date(n)
  return n.toLocaleDateString().replace(/\//g, "-") + " " + n.toTimeString().substr(0, 8)
}
getData(1642471746435) //'2022-1-18 10:09:06'

ただし、toLocaleDateString() メソッドはブラウザーによって異なるため、この変換は一部のブラウザーでは満足のいく結果が得られません。たとえば、IE は「22:26:19、2016 年 8 月 24 日」の形式であり、Sogou は「水曜日」です。 、2016 年 8 月 24 日 22 時 39 分 42 秒」

年、月、日を別々に取得することで接合できるため、互換性が向上します。

function getData(n) {
    
    
  let now = new Date(n),
    y = now.getFullYear(),
    m = now.getMonth() + 1,
    d = now.getDate();
  return y + "-" + (m < 10 ? "0" + m : m) + "-" + (d < 10 ? "0" + d : d) + " " + now.toTimeString().substr(0, 8);
}
getData(1642471746435) //'2022-1-18 10:09:06'

3.知識の普及

1. 現在のシステム ロケール形式 (toLocaleDateString および toLocaleTimeString)

(new Date()).toLocaleDateString() + " " + (new Date()).toLocaleTimeString() 
//'2022/1/18 上午10:30:30'

2. 通常の文字列 (toDateString および toTimeString)

(new Date()).toDateString() + " " + (new Date()).toTimeString() 
//'Tue Jan 18 2022 10:30:50 GMT+0800 (中国标准时间)'

3. グリニッジ標準時 (toGMTString)

(new Date()).toGMTString() 
//'Tue, 18 Jan 2022 02:31:10 GMT'

4. 世界標準時 (toUTCString)

(new Date()).toUTCString() 
//'Tue, 18 Jan 2022 02:31:25 GMT'

5.日付オブジェクト文字列(toString)

(new Date()).toString() 
'Tue Jan 18 2022 10:31:44 GMT+0800 (中国标准时间)'

日付オブジェクト コンストラクター

new Date() 
new Date(milliseconds) 
new Date(datestring) 
new Date(year, month) 
new Date(year, month, day) 
new Date(year, month, day, hours) 
new Date(year, month, day, hours, minutes) 
new Date(year, month, day, hours, minutes, seconds) 
new Date(year, month, day, hours, minutes, seconds, microseconds)

Date オブジェクト コンストラクターのパラメーターの説明:

milliseconds - 距离JavaScript内部定义的起始时间197011日的毫秒数 
datestring - 字符串代表的日期与时间。此字符串可以使用Date.parse()转换 
year - 四位数的年份,如果取值为0-99,则在其之上加上1900 
month - 0(代表一月)-11(代表十二月)之间的月份 
day - 1-31之间的日期 
hours - 0(代表午夜)-23之间的小时数 
minutes - 0-59之间的分钟数 
seconds - 0-59之间的秒数 
microseconds - 0-999之间的毫秒数

日付オブジェクトの戻り値

パラメータがない場合は、現在の日付が返されます。
パラメータが数値の場合は、数値をミリ秒値として扱い、日付に変換します。パラメータが
文字列の場合は、文字列を日付の文字列表現として扱います。 、それを
日付に変換します。6 つのコンストラクターは正確に定義され、時刻を返します。

var d1 = new Date(); 
document.write(d1.toString()); 
var d2 = new Date("2009-08-08 12:12:12); 
document.write(d2.toString()); 
var d3 = new Date(2009, 8, 8); 
document.write(d3.toString());

JavaScript の組み込みオブジェクトである日付は、new を使用して作成する必要があります。
JavaScript の Date オブジェクトの内部表現は、1970 年 1 月 1 日の午前 0 時 (GMT 時間) からのミリ秒数 (タイムスタンプ) です。ここでは、Date の内部表現をタイムスタンプとも呼びます。

getTime() を使用して Date オブジェクトを Date タイムスタンプに変換し、メソッド setTime() を使用して Date タイムスタンプを標準形式の Date に変換できます。

日付関数の使用構文

date. メソッド名 (パラメーター 1、パラメーター 2、...);
Date. メソッド名 ();
date は日付オブジェクトのインスタンスを表し、Date は日付オブジェクトを表し、date. メソッド名はメンバー関数
Date. メソッドを呼び出します。オブジェクトの名前はオブジェクトの静的関数です

var d=new Date(); 
var d2=Date.UTC();

日付機能は機能別に分類されています

日付取得クラス関数

Date() 函数 -- Date对象的构造函数 
getDate() 函数 -- 返回date对象中的月份中的天数(1-31) 
getDay()函数 -- 返回date对象中的星期中的天数(0-6) 
getFullYear() 函数 -- 返回date对象中的四位数年份 
getHours()函数 -- 返回date对象中的小时数(0-23) 
getMilliseconds() 函数 -- 返回date对象中的毫秒数(0-999) 
getMinutes() 函数 -- 返回date对象中的分钟数(0-59) 
getMonth() 函数 -- 返回date对象中的月份数(0-11) 
getSeconds() 函数 -- 返回date对象中的秒数(0-59) 
getTime() 函数 -- 返回date对象的时间戳表示法(毫秒表示) 
getTimezoneOffset() 函数 -- 返回本地时间与用UTC表示当前日期的时间差,以分钟为单位 
getUTCDate() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份中的一天(1-31) 
getUTCDay() 函数 -- 返回date对象中用世界标准时间(UTC)表示的周中的一天(0-6) 
getUTCFullYear() 函数 -- 返回date对象中用世界标准时间(UTC)表示的四位年份 
getUTCHours() 函数 -- 返回date对象中用世界标准时间(UTC)表示的小时数(0-23) 
getUTCMilliseconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的毫秒数(0-999) 
getUTCMinutes() 函数 -- 返回date对象中用世界标准时间(UTC)表示的分钟数(0-59) 
getUTCMonth() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份数(0-11) 
getUTCSeconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的秒数(0-59) 
getYear() 函数 -- 返回date对象的年份(真实年份减去1900) 
Date.UTC()函数 -- 返回date对象距世界标准时间(UTC)1970年1月1日午夜之间的毫秒数(时间戳)

日付設定授業機能

setDate() 函数 -- 设置date对象中月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setFullYear() 函数 -- 设置date对象中的年份,月份和天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setHours() 函数 -- 设置date对象的小时,分钟,秒和毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setMilliseconds() 函数 -- 设置date对象的毫秒数,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setMinutes() 函数 -- 设置date对象的分钟,秒,毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setMonth() 函数 -- 设置date对象中月份,天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setSeconds() 函数 -- 设置date对象中月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setTime() 函数 -- 使用毫秒数设置date对象,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCDate() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCFullYear() 函数 -- 设置date对象中用世界标准时间(UTC)表示的年份,月份和天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCHours() 函数 --- 设置date对象中用世界标准时间(UTC)表示的小时,分钟,秒和毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCMilliseconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的毫秒数,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCMinutes() 函数 -- 设置date对象中用世界标准时间(UTC)表示的分钟,秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCMonth() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份,天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCSeconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的秒,毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setYear() 函数 -- 设置date对象的年份(真实年份减去1900)

日付印字クラス機能

toDateString() 函数 -- 返回date对象的日期部分的字符串表示 
toGMTString() 函数 -- 返回date对象的格林威治时间(GMT)的字符串表示 
toLocaleDateString函数 -- 返回date对象的日期部分的本地化字符串 
toLocaleTimeString函数 -- 返回date对象的时间部分的本地化字符串 
toTimeString()函数 -- 返回date对象的时间部分的字符串 
toUTCString函数 -- 返回date对象的世界标准时间(UTC)的字符串表示

日付解析関数

Date.parse() 函数 -- 解析一个日期的字符串,并返回该日期距1970年1月1日午夜之间的毫秒数(时间戳) 
JavaScript_Date函数按照字母分类 
Date() 函数 -- Date对象的构造函数 
getDate() 函数 -- 返回date对象中的月份中的天数(1-31) 
getDay()函数 -- 返回date对象中的星期中的天数(0-6) 
getFullYear() 函数 -- 返回date对象中的四位数年份 
getHours()函数 -- 返回date对象中的小时数(0-23) 
getMilliseconds() 函数 -- 返回date对象中的毫秒数(0-999) 
getMinutes() 函数 -- 返回date对象中的分钟数(0-59) 
getMonth() 函数 -- 返回date对象中的月份数(0-11) 
getSeconds() 函数 -- 返回date对象中的秒数(0-59) 
getTime() 函数 -- 返回date对象的时间戳表示法(毫秒表示) 
getTimezoneOffset() 函数 -- 返回本地时间与用UTC表示当前日期的时间差,以分钟为单位 
getUTCDate() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份中的一天(1-31) 
getUTCDay() 函数 -- 返回date对象中用世界标准时间(UTC)表示的周中的一天(0-6) 
getUTCFullYear() 函数 -- 返回date对象中用世界标准时间(UTC)表示的四位年份 
getUTCHours() 函数 -- 返回date对象中用世界标准时间(UTC)表示的小时数(0-23) 
getUTCMilliseconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的毫秒数(0-999) 
getUTCMinutes() 函数 -- 返回date对象中用世界标准时间(UTC)表示的分钟数(0-59) 
getUTCMonth() 函数 -- 返回date对象中用世界标准时间(UTC)表示的月份数(0-11) 
getUTCSeconds() 函数 -- 返回date对象中用世界标准时间(UTC)表示的秒数(0-59) 
getYear() 函数 -- 返回date对象的年份(真实年份减去1900) 
Date.parse() 函数 -- 解析一个日期的字符串,并返回该日期距1970年1月1日午夜之间的毫秒数(时间戳) 
setDate() 函数 -- 设置date对象中月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setFullYear() 函数 -- 设置date对象中的年份,月份和天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setHours() 函数 -- 设置date对象的小时,分钟,秒和毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setMilliseconds() 函数 -- 设置date对象的毫秒数,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setMinutes() 函数 -- 设置date对象的分钟,秒,毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setMonth() 函数 -- 设置date对象中月份,天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setSeconds() 函数 -- 设置date对象中月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setTime() 函数 -- 使用毫秒数设置date对象,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCDate() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份的一天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCFullYear() 函数 -- 设置date对象中用世界标准时间(UTC)表示的年份,月份和天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCHours() 函数 --- 设置date对象中用世界标准时间(UTC)表示的小时,分钟,秒和毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCMilliseconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的毫秒数,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCMinutes() 函数 -- 设置date对象中用世界标准时间(UTC)表示的分钟,秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCMonth() 函数 -- 设置date对象中用世界标准时间(UTC)表示的月份,天,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setUTCSeconds() 函数 -- 设置date对象中用世界标准时间(UTC)表示的秒,毫秒,并返回date对象距1970年1月1日午夜之间的毫秒数(时间戳) 
setYear() 函数 -- 设置date对象的年份(真实年份减去1900) 
toDateString() 函数 -- 返回date对象的日期部分的字符串表示 
toGMTString() 函数 -- 返回date对象的格林威治时间(GMT)的字符串表示 
toLocaleDateString函数 -- 返回date对象的日期部分的本地化字符串 
toLocaleTimeString函数 -- 返回date对象的时间部分的本地化字符串 
toTimeString()函数 -- 返回date对象的时间部分的字符串 
toUTCString函数 -- 返回date对象的世界标准时间(UTC)的字符串表示 
Date.UTC()函数 -- 返回date对象距世界标准时间(UTC)1970年1月1日午夜之间的毫秒数(时间戳)

四、Javascriptのタイムスタンプとphpのタイムスタンプ変換

js のタイムスタンプは通常 13 桁で、php のタイムスタンプは 10 桁です. 変換関数は次のとおりです。

var nowtime = (new Date).getTime();/*当前时间戳*/   
/*转换时间,计算差值*/   
function comptime(beginTime,endTime){
    
       
    var secondNum = parseInt((endTime-beginTime*1000)/1000);//计算时间戳差值      
    if(secondNum>=0&&secondNum<60){
    
       
        return secondNum+'秒前';   
    }   
    else if (secondNum>=60&&secondNum<3600){
    
       
        var nTime=parseInt(secondNum/60);   
        return nTime+'分钟前';   
    }   
    else if (secondNum>=3600&&secondNum<3600*24){
    
       
        var nTime=parseInt(secondNum/3600);   
        return nTime+'小时前';   
    }   
    else{
    
       
        var nTime = parseInt(secondNum/86400);   
        return nTime+'天前';   
    }   
} 
t = comptime("1642471746",nowtime);//1642471746为PHP通过ajax回传的时间戳, 是10位
console.log(t); //27分钟前

おすすめ

転載: blog.csdn.net/weixin_55846296/article/details/130136349