目次
5. Dateオブジェクトの応用(スロットリング機能のタイムスタンプ書き込み方法)
1. Dateオブジェクトの詳細説明
1.日付オブジェクト
日付オブジェクトは、日付と時刻を操作するために使用されます。
2. 日付オブジェクトを作成する
let date = new Date();
3.日付オブジェクトのプロパティ
属性 | 説明 |
建設者 | このオブジェクトを作成した Date 関数への参照を返します。 |
プロトタイプ | オブジェクトにプロパティとメソッドを追加できるようになります。 |
4. 日付オブジェクトメソッド
今日は私のデートです
(1) getDate() は月の日 (1 ~ 31) を返します。
let date = new Date();
console.log(date.getDate());
(2) getDay() は曜日 (0 ~ 6) を返します。
let date = new Date();
console.log(date.getDay());
(3) getFull Year() は年を返します。
let date = new Date();
console.log(date.getFullYear());
(4) getHours() は Date オブジェクトの時間 (0 ~ 23) を返します。
let date = new Date();
console.log(date.getHours());
(5) getMillseconds() は Date オブジェクトのミリ秒 (0 ~ 999) を返します。
let date = new Date();
console.log(date.getMilliseconds());
(6) getMinutes() は Date オブジェクトの月 (0 ~ 11) を返します。月は 0 ~ 11 を返すため、通常は月 + 1 を取得する必要があります。
let date = new Date();
console.log(date.getMonth());
(7) getSeconds() は Date オブジェクトの秒数 (0 ~ 59) を返します。
let date = new Date();
console.log(date.getSeconds());
(8) getTime() は、1970 年 1 月 1 日から現在までのミリ秒数、つまりタイムスタンプを返します。
let date = new Date();
console.log(date.getTime());
これらは私たちがよく使う Date オブジェクトのメソッドです。その他のメソッドについては、新人チュートリアルを参照してください。
5. Dateオブジェクトの応用(スロットリング機能のタイムスタンプ書き込み方法)
Date.now() は、タイムスタンプを取得する date.getTIme() と同等です。
function throttled(fn, delay) {
let oldTime = Date.now();
return function (...args) {
let newTIme = Date.now();
if (newTIme - oldTime >= delay) {
fn.apply(this, args);
oldTime = Date.now();
}
};
}
2. タイムスタンプと時刻の相互変換
1. 時間をタイムスタンプに変換する
// Date.parse()不推荐这种写法,毫秒级别的数值直接被转化为000
let date1 = Date.parse(new Date());
// valueOf()函数返回指定对象的原始值获得准确的时间数值
let date2 = new Date().valueOf();
// getTime()通过原型方法直接获得当前时间的毫秒数
let date3 = new Date().getTime();
// Number() 将时间转化为一个number类型的数值
let date4 = Number(new Date());
console.log(date1);
console.log(date2);
console.log(date3);
console.log(date4);
印刷結果は以下の通りです
2. タイムスタンプを時刻に変換する
(1) Dateオブジェクトメソッドを利用した手書き変換機能
// 时间戳转换成时间格式
var formatDate = function (date) {
// 如果传入的时间戳为10位需*1000,时间戳为13位的话不需乘1000
date = new Date(date);
var y = date.getFullYear();
var m = date.getMonth() + 1;
var d = date.getDate();
var h = date.getHours();
var m1 = date.getMinutes();
var s = date.getSeconds();
// 过滤格式
m = m < 10 ? '0' + m : m;
d = d < 10 ? '0' + d : d;
h = h < 10 ? '0' + h : h;
m1 = m1 < 10 ? '0' + m1 : m1;
s = s < 10 ? '0' + s : s;
// 拼接时间格式
return y + '-' + m + '-' + d + ' ' + h + ':' + m1 + ':' + s;
};
console.log(formatDate(1685671570448));
別の書き方では、now.toTimeString().substr(0, 8)に従って次の時、分、秒の形式を取得できます。これはより便利です。
// 时间戳转换成时间格式
var formatDate = function (date) {
// 如果传入的时间戳为10位需*1000,时间戳为13位的话不需乘1000
date = new Date(date);
var y = date.getFullYear();
var m = date.getMonth() + 1;
var d = date.getDate();
// 过滤格式
m = m < 10 ? '0' + m : m;
d = d < 10 ? '0' + d : d;
return y + '-' + m + '-' + d + ' ' + date.toTimeString().substr(0, 8);
};
console.log(formatDate(1685671570448));
出力は次のとおりです
(2) replace メソッドを使用して転置できます。
function getLocalTime(nS) {
// parseInt可解析一个字符串,并返回一个整数
// toLocalString()方法可根据本地时间把date对象转换为字符串,并返回结果
// replace利用正则进行匹配替换
return new Date(parseInt(nS)).toLocaleString().replace(/:\d{1,2}$/, ' ');
}
console.log(getLocalTime(1685671570448));
出力は次のとおりです