javascript 日期转换为时间戳,时间戳转换为日期的函数

日期转化为时间戳,主要用valueOf()来进行转化为毫秒时间戳,getTime()IOS系统无法解析转换,所以都有valueOf()

let getTimestampOrDate=function(timestamp)
{
    let timeStamp='';
    const regex=/^\d{4}(-|\/)\d{2}(-|\/)\d{2}$/;
    const regex2=/^\d{4}(-|\/)\d{2}(-|\/)\d{2} \d{2}:\d{2}:\d{2}$/;
    //如果timestamp是时间戳,10位的是秒,转换成毫秒*1000
    //如果是13位则为毫秒
    if(typeof timestamp==='number'){
        let timestampLen=timestamp.toString().length;
        if(timestampLen===10)
        {
            timeStamp=timestamp*1000;
        }else if(timestampLen===13)
        {
            timeStamp=timestamp;
        }
    }
//如果timestamp输入的是日期:2024-01-01或2024/01/01都可以,但在这里全部会替换成"/",
//然后再求取时间戳;用valueOf()求取时间戳,getTime()时间戳IOS解析不了
    if(regex.test(timestamp) || regex2.test(timestamp))
    {
        let datetime='';
        if(timestamp.indexOf('-'))
        {
            datetime=timestamp.replace(/-/g,'/');
            timeStamp=new Date(datetime).valueOf();
            
        }else if(timestamp.indexOf('/'))
        {
            timeStamp=new Date(timestamp).valueOf();
        }
        //输入的日期直接转换为时间戳并返回
        return timeStamp;
        
    }
    
//将上面输入的时间在这里转为日期
    let date=new Date(timeStamp);
    
    let Y=(date.getFullYear()+'-');
    let M=(date.getMonth()+1 <10 ? '0'+(date.getMonth()+1) : date.getMonth()+1)+'-';
    let D=(date.getDate() < 10 ? '0' +date.getDate() + " " : date.getDate()+" ");
    let h=(date.getHours() < 10 ? '0'+date.getHours()+":" : date.getHours()+":");
    let m=(date.getMinutes()<10 ? '0'+date.getMinutes()+":":date.getMinutes()+":");
    let s=(date.getSeconds()<10 ? '0'+date.getSeconds():date.getSeconds());
    console.log(h);
    //如果时间是00:00:00则只显示日期;如果有时间则显示日期+时间
    if(h==='00:')
    {
        return Y+M+D;
    }else
    {
        return Y+M+D+h+m+s;
    }
}

//输入时间戳不带引号;转入日期则带引号
console.log(getTimestampOrDate(1704038400000));
//输入日期可2024/01/01或2024-01-01都可以,时间戳一致
console.log(getTimestampOrDate("2024/01/01 15:12:15"));
//检验时间戳是否一致,必须是斜杠的日期,不能是“-”;不然不一致
console.log(new Date("2024/01/01").valueOf());
console.log(new Date(1711411200000));

你可能感兴趣的:(javascript学习日记,javascript,开发语言,ecmascript)