獲取日期相應時間與時間格式的方法


1.獲取的時間轉換為想要的日期時間格式:

function getTimetrans(){
    const date = new Date();//如果date為13位不需要乘1000
    const Y = date.getFullYear() + '-';
    const M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
    const D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
    const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
    const m = (date.getMinutes() <10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
    const s = (date.getSeconds() <10 ? '0' + date.getSeconds() : date.getSeconds());
    return Y+M+D+h+m+s;
}

2.獲取的時間轉換為星期格式:

function getWeekDate(){
    const date = new Date();//如果date為13位不需要乘1000
    const day = date.getDay();
    const weeks = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
    const week = weeks[day];
    return week;
}

3.時間轉換為毫秒:

  1)方法一: getTime()/Date.parse()

const oldTime = (new Date("2020/08/14 15:00:00")).getTime(); //得到毫秒數 

//注:日期格式是:yyyy-mm-dd hh:mm:ss需要轉化格式

let startDate ='2020-08-14 15:00:00';
     startDate= startDate.replace(new RegExp("-","gm"),"/");
let startDateM = (new Date(startDate)).getTime(); //得到毫秒數

//或者
let str = '2020-08-14 15:00:00';

let arr = str.split(/[- : \/]/);
let startDate = Date.parse(new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]));
console.log(startDate)//1597388400000

  2)方法=:valueOf()

let dateTime = '2020-08-14 15:00:00';
console.log(dateTime.valueOf());//2020-08-14 15:00:00

let dateTime1 = new Date();
console.log(dateTime1.valueOf());//1597389982770

let dateTime2 = new Date('2020-08-14 15:00:00');
console.log(dateTime2.valueOf());//1597388400000

let timeVale = Date.parse('2020-08-14 15:00:00');//APP中直接使用此方法會報錯
console.log(timeVale);//1597388400000
 
         
 import moment from 'moment';//react-native項目安裝的插件
let timeVale2 = moment('2020-08-14 15:00:00').valueOf();//轉換為毫秒(APP中使用不會報錯)
console.log(timeVale2);//1597388400000

4.獲取當前日期前后時間:

1)獲取當前日期:

getBeforeMonth(){
    const date = new Date();//如果date為13位不需要乘1000
    const Y = date.getFullYear() + '-';
    const M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
    const D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
    return Y+M+D;
}

 2)獲取前幾個月時間:

getFirstFewMonths(time,num){
    return new Date(time).setMonth((new Date(time).getMonth() - num));
}

3)獲取后幾個月時間:

getNextFewMonthss(time,num){
    return new Date(time).setMonth((new Date(time).getMonth() + num));
}

4)獲取前幾天時間:

getSomeDaysAgo(time,num){
    return new Date(time).setDate((new Date(time).getDate() - num));
}

5)獲取后幾天時間:

getFewDaysLater(time,num){
    return new Date(time).setDate((new Date(time).getDate() + num));
}

6)計算兩個日期之間的天數:

/**
 * @param dateString1  開始日期 yyyy-MM-dd
 * @param dateString2  結束日期 yyyy-MM-dd
 * @returns {number} 如果日期相同 返回一天 開始日期大於結束日期,返回0
 */
getDaysBetween(dateString1,dateString2){
    var  startDate = Date.parse(dateString1);
    var  endDate = Date.parse(dateString2);
    if (startDate>endDate){
        return 0;
    }
    if (startDate==endDate){
        return 1;
    }
    var days=(endDate - startDate)/(1*24*60*60*1000);
    return  days;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM