TIPS:这是技术面试给我的题目,我第一次远程面试,紧张的没看懂题目,事后才发现这不就是社区回帖的时间工具吗,,翻车了,面试的时候,我还去split和正则,尴尬死了。
虽然没面试好,但是刚好自己写一个记一下。
要求如下:
有一串Date数据,请你根据以下规则分别将每一条Date解析并输出
日期和当前时间相比
同一天:今天 07:31
前一天:昨天 07:31
1天之前(显示具体日月和时间):6-13 07:31
1年之前(显示具体年日月和时间):2021-12-12 07:31
2022-06-15T07:31:22.752Z
2022-06-14T07:31:22.752Z
2022-06-13T07:31:22.752Z
2022-03-10T07:31:22.752Z
2022-01-11T07:31:22.752Z
2021-12-16T07:31:22.752Z
2021-05-01T07:31:22.752Z
2021-03-16T07:31:22.752Z
2020-11-12T07:31:22.752Z
2020-03-16T07:31:22.752Z
函数如下:这个函数没有太完善,只是个TODO。自己也刚好复习一下。
let list =`2022-06-15T07:31:22.752Z 2022-06-14T07:31:22.752Z 2022-06-13T07:31:22.752Z 2022-03-10T07:31:22.752Z 2022-01-11T07:31:22.752Z 2021-12-16T07:31:22.752Z 2021-05-01T07:31:22.752Z 2021-03-16T07:31:22.752Z 2020-11-12T07:31:22.752Z 2020-03-16T07:31:22.752Z`.split(' ');
function formatDate(d){
let tmp_d = (new Date(d)).getTime() - 1000*60*60*8;
let d_obj = (new Date(tmp_d));
console.log('当前日期:'+d_obj.toISOString())
//今天
console.log('今天 '+d_obj.getHours() + ':'+d_obj.getMinutes());
//昨天TODO
console.log('昨天 '+d_obj.getHours() + ':'+d_obj.getMinutes());
//1天之前(显示具体日月和时间):6-13 07:31
console.log(( '一天之前 '+(d_obj.getMonth() + 1))+ '-'+(d_obj.getDate() - 1) + ' '+d_obj.getHours() +':'+ d_obj.getMinutes());
//1年之前(显示具体年日月和时间):2021-12-12 07:31
console.log(( '一年之前 '+(d_obj.getFullYear() - 1) +'-' + (d_obj.getMonth() + 1))+ '-'+(d_obj.getDate()) + ' '+d_obj.getHours() +':'+ d_obj.getMinutes());
}
formatDate('2022-06-15T07:31:22.752Z');
list.map((r,i)=>formatDate(r))