最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實現(xiàn)獲取年月日時間的方法總結(jié)

 更新時間:2023年08月08日 09:08:38   作者:一花一world  
這篇文章主要為大家學習介紹了JavaScript如何實現(xiàn)獲取年月日以及各種格式的時間,文中的示例代碼簡潔易懂,感興趣的小伙伴可以了解一下

首先介紹時間的獲取

// 獲取當前時間
let currentTime = new Date();
// 獲取年份
let year = currentTime.getFullYear();
// 獲取月份(注意月份是從0開始計數(shù)的,所以需要加1)
let month = currentTime.getMonth() + 1;
// 獲取日期
let day = currentTime.getDate();
// 獲取小時
let hours = currentTime.getHours();
// 獲取分鐘
let minutes = currentTime.getMinutes();
// 獲取秒數(shù)
let seconds = currentTime.getSeconds();
// 獲取毫秒數(shù)
let milliseconds = currentTime.getMilliseconds();
// 格式化時間為 YYYY-MM-DD
let formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
// 格式化時間為 HH:MM:SS
let formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
// 格式化時間為 YYYY-MM-DD HH:MM:SS
let formattedDateTime = `${formattedDate} ${formattedTime}`;
// 格式化時間為 MM/DD/YYYY
let formattedDateUS = `${month.toString().padStart(2, '0')}/${day.toString().padStart(2, '0')}/${year}`;
// 格式化時間為 HH:MM AM/PM
let formattedTime12Hour = `${hours % 12 || 12}:${minutes.toString().padStart(2, '0')} ${hours < 12 ? 'AM' : 'PM'}`;
console.log('當前時間:', currentTime);
console.log('年份:', year);
console.log('月份:', month);
console.log('日期:', day);
console.log('小時:', hours);
console.log('分鐘:', minutes);
console.log('秒數(shù):', seconds);
console.log('毫秒數(shù):', milliseconds);
console.log('格式化日期:', formattedDate);
console.log('格式化時間:', formattedTime);
console.log('格式化日期時間:', formattedDateTime);
console.log('格式化日期(美國格式):', formattedDateUS);
console.log('格式化12小時制時間:', formattedTime12Hour);

獲取本月和上月的開始和結(jié)束日期

function getMonthDates() {
  let today = new Date();
  let year = today.getFullYear();
  let month = today.getMonth();
  let startOfMonth = new Date(year, month, 1);
  let endOfMonth = new Date(year, month + 1, 0);
  let startOfLastMonth = new Date(year, month - 1, 1);
  let endOfLastMonth = new Date(year, month, 0);
  return {
    startOfMonth,
    endOfMonth,
    startOfLastMonth,
    endOfLastMonth,
  };
}
// 調(diào)用函數(shù)獲取本月和上月的日期范圍
let monthDates = getMonthDates();
console.log('本月的開始日期:', monthDates.startOfMonth);
console.log('本月的結(jié)束日期:', monthDates.endOfMonth);
console.log('上月的開始日期:', monthDates.startOfLastMonth);
console.log('上月的結(jié)束日期:', monthDates.endOfLastMonth);

這個封裝的方案定義了一個名為 getMonthDates 的函數(shù),該函數(shù)根據(jù)當前日期獲取本月和上月的開始和結(jié)束日期,并返回一個包含這些日期的對象。然后,通過調(diào)用 getMonthDates 函數(shù)來獲取日期范圍,并將結(jié)果打印輸出。

這些封裝方案可以方便地獲取本月和上月的日期范圍,可以根據(jù)需要將其集成到你的項目中。

要獲取本季度和上季度的開始和結(jié)束日期

可以使用以下封裝方案:

function getQuarterDates() {
  let today = new Date();
  let year = today.getFullYear();
  let month = today.getMonth();
  let quarter = Math.floor(month / 3) + 1;
  let startOfQuarter = new Date(year, (quarter - 1) * 3, 1);
  let endOfQuarter = new Date(year, quarter * 3, 0);
  let startOfLastQuarter = new Date(year, (quarter - 2) * 3, 1);
  let endOfLastQuarter = new Date(year, (quarter - 1) * 3, 0);
  return {
    startOfQuarter,
    endOfQuarter,
    startOfLastQuarter,
    endOfLastQuarter,
  };
}
// 調(diào)用函數(shù)獲取本季度和上季度的日期范圍
let quarterDates = getQuarterDates();
console.log('本季度的開始日期:', quarterDates.startOfQuarter);
console.log('本季度的結(jié)束日期:', quarterDates.endOfQuarter);
console.log('上季度的開始日期:', quarterDates.startOfLastQuarter);
console.log('上季度的結(jié)束日期:', quarterDates.endOfLastQuarter);

這個封裝的方案定義了一個名為 getQuarterDates 的函數(shù),該函數(shù)根據(jù)當前日期獲取本季度和上季度的開始和結(jié)束日期,并返回一個包含這些日期的對象。然后,通過調(diào)用 getQuarterDates 函數(shù)來獲取日期范圍,并將結(jié)果打印輸出。

要獲取上一年的開始和結(jié)束日期,可以使用以下封裝方案:

function getLastYearDates() {
  let today = new Date();
  let year = today.getFullYear();
  let startOfYear = new Date(year - 1, 0, 1);
  let endOfYear = new Date(year - 1, 11, 31);
  return {
    startOfYear,
    endOfYear,
  };
}
// 調(diào)用函數(shù)獲取上一年的日期范圍
let lastYearDates = getLastYearDates();
console.log('上一年的開始日期:', lastYearDates.startOfYear);
console.log('上一年的結(jié)束日期:', lastYearDates.endOfYear);

這個封裝的方案定義了一個名為 getLastYearDates 的函數(shù),該函數(shù)根據(jù)當前日期獲取上一年的開始和結(jié)束日期,并返回一個包含這些日期的對象。然后,通過調(diào)用 getLastYearDates 函數(shù)來獲取日期范圍,并將結(jié)果打印輸出。

這些封裝方案可以方便地獲取本季度、上季度以及上一年的日期范圍,可以根據(jù)需要將其集成到你的項目中。

整體封裝

以下是一個封裝了獲取上月、本月、本季度、上季度和年度的開始和結(jié)束時間的方法:

function getDateRange() {
  let today = new Date();
  let year = today.getFullYear();
  let month = today.getMonth();
  let quarter = Math.floor(month / 3);
  let startOfMonth = new Date(year, month, 1);
  let endOfMonth = new Date(year, month + 1, 0);
  let startOfLastMonth = new Date(year, month - 1, 1);
  let endOfLastMonth = new Date(year, month, 0);
  let startOfQuarter = new Date(year, quarter * 3, 1);
  let endOfQuarter = new Date(year, quarter * 3 + 3, 0);
  let startOfLastQuarter = new Date(year, (quarter - 1) * 3, 1);
  let endOfLastQuarter = new Date(year, quarter * 3, 0);
  let startOfYear = new Date(year, 0, 1);
  let endOfYear = new Date(year, 11, 31);
  return {
    startOfMonth,
    endOfMonth,
    startOfLastMonth,
    endOfLastMonth,
    startOfQuarter,
    endOfQuarter,
    startOfLastQuarter,
    endOfLastQuarter,
    startOfYear,
    endOfYear,
  };
}
// 調(diào)用函數(shù)獲取日期范圍
let dateRange = getDateRange();
console.log('本月的開始日期:', dateRange.startOfMonth);
console.log('本月的結(jié)束日期:', dateRange.endOfMonth);
console.log('上月的開始日期:', dateRange.startOfLastMonth);
console.log('上月的結(jié)束日期:', dateRange.endOfLastMonth);
console.log('本季度的開始日期:', dateRange.startOfQuarter);
console.log('本季度的結(jié)束日期:', dateRange.endOfQuarter);
console.log('上季度的開始日期:', dateRange.startOfLastQuarter);
console.log('上季度的結(jié)束日期:', dateRange.endOfLastQuarter);
console.log('本年度的開始日期:', dateRange.startOfYear);
console.log('本年度的結(jié)束日期:', dateRange.endOfYear);

這個封裝的方法定義了一個名為 getDateRange 的函數(shù),該函數(shù)根據(jù)當前日期獲取上月、本月、本季度、上季度和年度的開始和結(jié)束時間,并返回一個包含這些時間的對象。然后,通過調(diào)用 getDateRange 函數(shù)來獲取日期范圍,并將結(jié)果打印輸出。

這個封裝方案可以方便地獲取上月、本月、本季度、上季度和年度的開始和結(jié)束時間,可以根據(jù)需要將其集成到你的項目中。

使用場景和優(yōu)缺點

上月、本月、本季度、上季度和年度的開始和結(jié)束時間可以在各種場景下使用,特別是與時間相關(guān)的數(shù)據(jù)分析、報表生成和業(yè)務(wù)邏輯計算等方面。以下是一些常見的使用場景:

數(shù)據(jù)分析和報表生成:在數(shù)據(jù)分析和報表生成過程中,經(jīng)常需要按照時間范圍進行數(shù)據(jù)篩選和計算。使用上月、本月、本季度、上季度和年度的開始和結(jié)束時間可以方便地獲取對應(yīng)的時間范圍,從而準確地提取和計算相應(yīng)的數(shù)據(jù)。

業(yè)務(wù)邏輯計算:在一些業(yè)務(wù)邏輯計算中,需要根據(jù)時間范圍進行特定的計算和判斷。例如,統(tǒng)計上月銷售額、計算本季度的利潤等。使用上月、本月、本季度、上季度和年度的開始和結(jié)束時間可以方便地獲取相應(yīng)的時間范圍,從而進行業(yè)務(wù)邏輯計算。

時間過濾和查詢:在數(shù)據(jù)庫查詢和數(shù)據(jù)篩選中,經(jīng)常需要根據(jù)時間范圍進行數(shù)據(jù)過濾和查詢。使用上月、本月、本季度、上季度和年度的開始和結(jié)束時間可以方便地構(gòu)建查詢條件,從而獲取符合時間范圍要求的數(shù)據(jù)。

優(yōu)點:

方便:使用上月、本月、本季度、上季度和年度的開始和結(jié)束時間,可以方便地獲取相應(yīng)的時間范圍,避免手動計算和輸入時間范圍的麻煩。

精確:根據(jù)當前日期動態(tài)計算時間范圍,確保獲取的時間范圍準確無誤。

可復用:封裝成方法后,可以在不同的場景中反復使用,提高代碼的復用性和效率。

缺點:

依賴于系統(tǒng)時間:獲取的時間范圍依賴于系統(tǒng)時間,如果系統(tǒng)時間不準確或被修改,可能會導致獲取的時間范圍不準確。

邏輯復雜性:計算上月、本月、本季度、上季度和年度的開始和結(jié)束時間涉及一定的邏輯復雜性,需要考慮月份和季度的邊界情況,可能需要處理一些特殊情況的邏輯。

綜上所述,上月、本月、本季度、上季度和年度的開始和結(jié)束時間在數(shù)據(jù)分析、報表生成和業(yè)務(wù)邏輯計算等場景中非常有用,可以方便地獲取對應(yīng)的時間范圍。但需要注意系統(tǒng)時間的準確性和處理邏輯復雜性。

到此這篇關(guān)于JavaScript實現(xiàn)獲取年月日時間的方法總結(jié)的文章就介紹到這了,更多相關(guān)JavaScript獲取時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 十大熱門的JavaScript框架和庫

    十大熱門的JavaScript框架和庫

    這篇文章主要為大家詳細介紹了十大熱門的JavaScript框架和庫,前端必備,感興趣的小伙伴們可以參考一下
    2017-03-03
  • layui 實現(xiàn)加載動畫以及非真實加載進度的方法

    layui 實現(xiàn)加載動畫以及非真實加載進度的方法

    今天小編就為大家分享一篇layui 實現(xiàn)加載動畫以及非真實加載進度的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JavaScript實現(xiàn)數(shù)字格式化的示例詳解

    JavaScript實現(xiàn)數(shù)字格式化的示例詳解

    在處理數(shù)字時,為了提高可讀性,我們通常會將整數(shù)部分的數(shù)字以千分位或百分位分隔,本文將詳細介紹如何使用JavaScript來實現(xiàn)數(shù)字的千分位和百分位分隔,需要的可以參考下
    2024-04-04
  • 原生js 封裝get ,post, delete 請求的實例

    原生js 封裝get ,post, delete 請求的實例

    下面小編就為大家?guī)硪黄鷍s 封裝get ,post, delete 請求的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • MvcPager分頁控件 適用于Bootstrap

    MvcPager分頁控件 適用于Bootstrap

    這篇文章主要為大家詳細介紹了MvcPager分頁控件,修改后適用于Bootstrap,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 如何利用模板將HTML從JavaScript中抽離

    如何利用模板將HTML從JavaScript中抽離

    這篇文章主要為大家詳細介紹了利用模板將HTML從JavaScript中抽離的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • ES6使用 Array.includes 處理多重條件用法實例分析

    ES6使用 Array.includes 處理多重條件用法實例分析

    這篇文章主要介紹了ES6使用 Array.includes 處理多重條件用法,結(jié)合實例形式分析了Array.includes基本功能、原理及處理多重條件相關(guān)操作技巧,需要的朋友可以參考下
    2020-03-03
  • JS只能輸入正整數(shù)的簡單實例

    JS只能輸入正整數(shù)的簡單實例

    下面小編就為大家?guī)硪黄狫S只能輸入正整數(shù)的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • 原生js通過一行代碼實現(xiàn)簡易輪播圖

    原生js通過一行代碼實現(xiàn)簡易輪播圖

    這篇文章主要介紹了原生js一行代碼實現(xiàn)簡易輪播圖功能,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2019-06-06
  • js高精度計算decimal.js庫用法demo

    js高精度計算decimal.js庫用法demo

    這篇文章主要給大家介紹了關(guān)于js高精度計算decimal.js庫用法的相關(guān)資料,decimal.js是使用的二進制來計算的,所以能解決js的精度問題,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11

最新評論

米易县| 通榆县| 教育| 昌乐县| 沅陵县| 麻江县| 扬中市| 竹北市| 天柱县| 芮城县| 安塞县| 观塘区| 玉溪市| 荥经县| 特克斯县| 天等县| 乐业县| 广饶县| 陈巴尔虎旗| 大邑县| 隆化县| 泸西县| 运城市| 乌拉特中旗| 湖南省| 微博| 屏东县| 吴旗县| 左贡县| 景宁| 鲁甸县| 长海县| 丽江市| 通榆县| 山东省| 仪陇县| 漳浦县| 即墨市| 分宜县| 铁岭市| 板桥市|