搜尋
首頁web前端js教程Js如何操作date對象

Js如何操作date對象

Dec 02, 2017 am 10:30 AM
datejavascript操作

Date在js中和Array類似,都是擁有自己的特殊方法的特殊物件。

  由於平常用到Date著實不多,對它的了解頗淺。上週被問到怎麼樣取得某年某個月的天數,我當時想了一會兒,回答說有兩種,一種自己寫判斷閏年的邏輯,每個月天數分兩種情況存數組,一種是利用js Date物件的特性(其實是他總結的...)。不過具體用到什麼特性我答不出來。現在既然想起來了,也學習總結一下好了。

  Date get和set系列

  (註:getTime()具體的參考時間為1970年1月1日8點0分0秒)

  所有的set對應都有get系列.

  值得注意的是所有的get和set都必須初始化一個實例並以實例的屬性方式呼叫。如:

  其實也很容易理解,畢竟要設定或回傳Date物件的值,肯定這個值得先存在啊。標準點的寫法是var date=new Date(2015,7,30);date.getDate()

  如果new Date()裡面沒有傳任何參數,也沒有用任何set系列方法,那麼就指的是目前的值(本地計算時鐘),包括時分秒。 js中可以很容易地用這個特徵來以任何形式顯示目前時間。

var date = new Date(),
    nowYear = date.getFullYear(),
    nowMonth = date.getMonth() + 1,  //注意getMonth从0开始,getDay()也是(此时0代表星期日)
    nowDay = date.getDate(),
    nowHour = date.getHours(),
    nowMinute = date.getMinutes(),
    nowSecond = date.getSeconds(),
    weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
    nowWeek = weekday[date.getDay()];
console.log(nowYear + '年' + nowMonth + '月' + nowDay + '日' + nowHour + '时' + nowMinute + '分' + nowSecond + '秒' + nowWeek);

  同樣,利用內建的 setInterval 或 setTimeout 回呼自身的方法,可以很容易的做時鐘效果。

  首先是每個物件都有的valueOf()(得到真實值)和toString()(得到字串形式表示值)。注意紅色框內的不同。

  toTimeString() :將Date物件時間部分轉換為字串並傳回,因此必須有時間參數,必須有實例,

  toDateString() :將Date物件的日期部分轉換為字串並返回,必須有實例。

  parse() : 傳回1970年1月1日8點整到指定日期(字串)的毫秒數,精確到秒。只能用Date.parse(Date實例)的形式呼叫。 (注意比較getTime(),精確到毫秒。)

  toSource() : 傳回原始碼。

  註:toLocaleString:根據本地時間格式,將Date物件轉換為字串,與UTC,GMT對應,在Array和在Date中這個方法都已經過時,就不再糾結。 UTC系列用得很少,也就是格式有所不同.

  重要知識點小結

  set系列的參數討論

  setFullYear()前三個參數有用,時分秒還是本地的~~~

    其它set系列都只有第一個參數有用,返回值分別為在new Date()(當前時間)的基礎上加上了Month/Date/Minutes *對應的第一個參數。

    設定完整時間

  很明顯setTime也是set系列,故而只是在原來的基礎上增加了1992毫秒(顯示為1s)。由於setTime比較特殊,是以1970年1月1日早上8點( FF、Chrome、IE5+、Opera (safari用得少就沒測) 中測試,雖然w3School中說是0點,但是測試一下new Date( 1970,0,1,8,0,0).getTime()顯示為0就很明顯了)為基準開始算的,因此在實際執行前其實date實例已經不是new Date()所對應的當前時間了,而是有一個被轉換為基準時間的過程。所以顯示的為1970,0,1,8,0,1。若將1992改為5000則為1970,0,1,8,0,5。

  而設定完整時間的方法,為new Date物件的時候傳入需要設定的時間的參數。可以為1992,10,3,10,2,50 (還可以加上毫秒級,然後用getTime()檢測出來,但是一般用不上) 的數字形式(表示1992年11月3日10時2分50秒),也可以為標準字串格式(但一般不會這麼寫吧~~~)。

    getDate()

  一般放在後面就是用來壓軸用的,嘿嘿。

  作為get系列,除了參數的個數有些講究之外,參數的取值也是很有講究的。先回答最初的問題,得到某年某個月的最大天數(可以理解為判斷閏年~)。

new Date(2014,2,0).getDate();     //返回2014年2月份的最后一天(28)

  當第三個參數為0的時候,其實是返回上一個月的最後一天(注意月份的數字2實際上是三月份,故而代碼是返回2月份的最後一天在當月中的序號)。看更多例子

複製程式碼

new Date(2014,1,30).getDate();     //返回2014年3月2日在3月份中的天数(2)
new Date(2014,2,-1).getDate();     //返回2014年2月份的倒数第二天(27)

//當參數缺少的時候顯示1

new Date(2014,8).getDate(); 
new Date(14,18).getDate(); 
new Date(180).getDate();

//當參數多餘的時候多餘的不起作用(並沒有設定arguments[3+]的操作)

new Date(2015,2,0,2).getDate();

複製代碼

#  天數多了會自動往下月計算,天數為負數則往上個月計算。參數少了有問題,多了的話多的部分沒作用。對比其它的set系列其實也差不多就是這麼個實現的思路,看(2)就知道了。

      類似new Date('xxxx/xx/xx xx:xx:xx') 形式的時間物件在IOS 和Andriod 系統上都可以被正確的識別,而類似new Date('xxxx-xx- xx xx:xx:xx') 形式的時間物件在ios 系統上無法被正確的識別,需要做一層轉換。

function parseDate(dateStr) {
  if (!dateStr) {
    return new Date();
  }
 
  if (dateStr.indexOf('/') > -1) {
    return new Date(dateStr);
  } else {
    return new Date(dateStr.replace(/-/g, '/'));
  }
}

相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

CSS的文字字體顏色如何設定

css裡的font文字怎麼設定

#CSS裡的盒子模型的種類差異

#

以上是Js如何操作date對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python vs. JavaScript:開發人員的比較分析Python vs. JavaScript:開發人員的比較分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

Python vs. JavaScript:選擇合適的工具Python vs. JavaScript:選擇合適的工具May 08, 2025 am 12:10 AM

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript:了解每個的優勢Python和JavaScript:了解每個的優勢May 06, 2025 am 12:15 AM

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

JavaScript的核心:它是在C還是C上構建的?JavaScript的核心:它是在C還是C上構建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript應用程序:從前端到後端JavaScript應用程序:從前端到後端May 04, 2025 am 12:12 AM

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

Python vs. JavaScript:您應該學到哪種語言?Python vs. JavaScript:您應該學到哪種語言?May 03, 2025 am 12:10 AM

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。

JavaScript框架:為現代網絡開發提供動力JavaScript框架:為現代網絡開發提供動力May 02, 2025 am 12:04 AM

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

JavaScript,C和瀏覽器之間的關係JavaScript,C和瀏覽器之間的關係May 01, 2025 am 12:06 AM

引言我知道你可能會覺得奇怪,JavaScript、C 和瀏覽器之間到底有什麼關係?它們之間看似毫無關聯,但實際上,它們在現代網絡開發中扮演著非常重要的角色。今天我們就來深入探討一下這三者之間的緊密聯繫。通過這篇文章,你將了解到JavaScript如何在瀏覽器中運行,C 在瀏覽器引擎中的作用,以及它們如何共同推動網頁的渲染和交互。 JavaScript與瀏覽器的關係我們都知道,JavaScript是前端開發的核心語言,它直接在瀏覽器中運行,讓網頁變得生動有趣。你是否曾經想過,為什麼JavaScr

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具