码农的日常工作中时常要进行各种时间格式之间的转化,我是一只菜鸟,就将每日学到的东西整理成文档,也算是学习笔记了,以下内容也是看了别人的东西,整理了一下,希望对同样是新手的朋友有所帮助~
1.如何获取时间对象d
我们通过new Date()来实例化一个日期对象 有4种方式:
let d = new Date();//获取当前最新的日期对象
let d = new Date(milliseconds);//传入毫秒时间戳获取对应的日期对象
let d = new Date(dateString);//传入标准格式的时间字符串获取对应的日期对象 如:2022/12/25 18:02:20:0
let d = new Date(year, month, day, hours, minutes, seconds, milliseconds);//分别传入年月日数据
2.已知日期对象d,如何获取对应的年月日时分秒
let year = d.getFullYear();//获取年
let month = d.getMonth();//获取月(0-11)(从0开始计算,即0代表1月份,依次类推)
let date = d.getDate();//获取日(1-31)
let day = d.getDay();//获取星期几(0-6)(外国的星期可是从星期日开始算的 星期日=0 星期一=1...依次类推)
let hours = d.getHours();//获取时(0-23)
let minutes = d.getMinutes();//获取分钟(0-59)
let seconds = d.getSeconds();//获取秒(0-59)
let milliseconds = d.getMilliseconds();//获取毫秒(0-999)
let timestamp = d.getTime();//获取自 1970 年 1 月 1 日午夜以来与指定日期的毫秒数。
有了这些方法,我们就能应付很多需求了,具体应用场景如下:
a.获取当前时间戳,单位秒
let timestamp = parseInt(new Date().getTime()/1000);//时间戳秒
b.当前时间转换成日期字符串
//定义一个函数方法
function timeToStr(){
let now = new Date();
let yy = now.getFullYear(); //年
let mm = now.getMonth() + 1; //月
let dd = now.getDate(); //日
let hh = now.getHours(); //时
let ii = now.getMinutes(); //分
let ss = now.getSeconds(); //秒
let clock = yy + "-";
if(mm < 10) clock += "0";
clock += mm + "-";
if(dd < 10) clock += "0";
clock += dd + " ";
if(hh < 10) clock += "0";
clock += hh + ":";
if (ii < 10) clock += '0';
clock += ii + ":";
if (ss < 10) clock += '0';
clock += ss;
return clock; //返回当前日期字符串
}
//调用方法
let timeStr = timeToStr();
c.日期字符串转时间戳
let d = '2015-03-05 17:59:00.0';//保证标准时间格式的情况下
d = d.substring(0,19).replace(/-/g,'/');//必须把日期'-'转为'/'
let timestamp = new Date(d).getTime();//最终的时间戳
d.时间戳转日期字符串
//创建一个方法 传入时间戳 返回日期字符串
//假设传入的是秒时间戳
function timeToStr(timestamp){
let d = new Date(timestamp * 1000); //根据时间戳生成的时间对象
let timeStr = (d.getFullYear()) + "-" +
(d.getMonth() + 1) + "-" +
(d.getDate()) + " " +
(d.getHours()) + ":" +
(d.getMinutes()) + ":" +
(d.getSeconds());//当然也可以用b中判断月份这些是否小于10来补0
return timeStr;
}
可以将b和d进行结合,这个给新朋友自己进行尝试把,传入一个时间戳,或者一个日期对象,返回一个日期字符串 在函数体内进行判断,传入的参数是时间戳还是日期对象,或者压根没传来进行后续处理