javascript - today - js time format




如何在JavaScript中獲取當前日期? (20)

如何在JavaScript中獲取當前日期?


更新! ,向下滾動

如果你想要一些簡單的東西給最終用戶...... Also, fixed a small suffix issue in the first version below. Now properly returns suffix. Also, fixed a small suffix issue in the first version below. Now properly returns suffix.

var objToday = new Date(),
	weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
	dayOfWeek = weekday[objToday.getDay()],
	domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
	dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
	months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
	curMonth = months[objToday.getMonth()],
	curYear = objToday.getFullYear(),
	curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
	curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
	curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
	curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear;

document.getElementsByTagName('h1')[0].textContent = today;
<h1></h1>

UBBER UPDATE經過多次拖延之後,我終於GitHubbed並用我自己使用的最終解決方案進行了更新。 它甚至有一些最後一刻的編輯,使其更甜! 如果你正在尋找舊的jsFiddle,請看看這個

此更新有兩種口味,仍然相對較小,儘管不像我上面的原始答案那麼小。 如果你想要非常小,那就去吧。
另外請注意:這比moment.js還要少。 雖然moment.js很好,但是,它有許多世俗的方法,需要學習時刻,就好像它是一種語言。 我的這裡使用與PHP:date相同的通用格式PHP:date

快速鏈接

Flavor 1 new Date().format(String) My Personal Fav。 我知道禁忌,但在Date對像上效果很好。 只要知道你可能需要的任何其他mod就可以使用Date對象。

//  use as simple as
new Date().format('m-d-Y h:i:s');   //  07-06-2016 06:38:34

風味2 dateFormat(Date, String)更傳統的一體式方法。 具有以前的所有功能,但通過Date參數的方法調用。

//  use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s');  //  07-06-2016 06:38:34

獎金Flavor(需要jQuery) $.date(Date, String)這不僅僅包含一個簡單的format選項。 它擴展了基本的Date對象,並包含諸如addDays方法。 有關更多信息,請參閱Git

在這個mod中,格式字符受PHP:date啟發。 有關完整列表,請參閱我的README

這個MOD還有一個更長的預製格式列表。 要使用預製格式,只需輸入其密鑰名稱即可。 dateFormat(new Date(), 'pretty-a');

  • '複合'
    • 'commonLogFormat'=='d / M / Y:G:i:s'
    • 'exif'=='Y:m:d G:i:s'
    • 'isoYearWeek'=='Y \\ WW'
    • 'isoYearWeek2'=='Y - \\ WW'
    • 'isoYearWeekDay'== == Y \\ WWj'
    • 'isoYearWeekDay2'=='Y - \\ WW-j'
    • 'mySQL'=='Ymd h:i:s'
    • 'postgreSQL'=='Y.z'
    • 'postgreSQL2'=='Yz'
    • 'soap'=='Ymd \\ TH:i:s.u'
    • 'soap2'=='Ymd \\ TH:i:s.uP'
    • 'unixTimestamp'=='@U'
    • 'xmlrpc'=='Ymd \\ TG:i:s'
    • 'xmlrpcCompact'=='Ymd \\ tGis'
    • 'wddx'=='Ynj \\ TG:i:s'
  • “常量”
    • 'AMERICAN'=='F j Y'
    • 'AMERICANSHORT'=='m / d / Y'
    • 'AMERICANSHORTWTIME'=='m / d / Y h:i:sA'
    • 'ATOM'=='Ymd \\ TH:i:sP'
    • 'COOKIE'=='l dMY H:i:s T'
    • 'EUROPEAN'=='j F Y'
    • 'EUROPEANSHORT'=='dmY'
    • 'EUROPEANSHORTWTIME'=='dmY H:i:s'
    • 'ISO8601'=='Ymd \\ TH:i:sO'
    • 'LEGAL'=='j F Y'
    • 'RFC822'=='D d M y H:i:s O'
    • 'RFC850'=='l dMy H:i:s T'
    • 'RFC1036'=='D d M y H:i:s O'
    • 'RFC1123'=='D d MYH:i:s O'
    • 'RFC2822'=='D d MYH:i:s O'
    • 'RFC3339'=='Ymd \\ TH:i:sP'
    • 'RSS'=='D d MYH:i:s O'
    • 'W3C'=='Ymd \\ TH:i:sP'
  • '漂亮'
    • 'pretty-a'=='g:i.sA l jS \\ o \\ f F Y'
    • 'pretty-b'=='g:iA l jS \\ o \\ f F Y'
    • 'pretty-c'=='n / d / Y g:iA'
    • 'pretty-d'=='n / d / Y'
    • 'pretty-e'=='F jS - g:ia'
    • 'pretty-f'=='g:iA'

正如你可能注意到的,你可以使用double \來逃避一個字符。


單行JS解決方案:

TL;博士

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

邊緣,ff最新,&鉻返回todaysDate = "2/7/2017"
“作品”*在IE10 +中

編輯2/7/2017

我發現IE10和IE Edge做的事情有點不同..去圖。 用new Date(Date.now()).toLocaleString()作為輸入,

IE10返回:

"Tuesday, February 07, 2017 2:58:25 PM"

我可以寫一個很長的函數和FTFY。 但你真的應該使用moment.js這個東西。 我的劇本只是清除了這一點,並給你擴大了傳統的美國符號: > todaysDate = "March 06, 2017"

IE EDGE返回:

"‎2‎/‎7‎/‎2017‎ ‎2‎:‎59‎:‎27‎ ‎PM"

當然,這並不容易。 邊緣的日期字符串在每個可見字符之間都有不可見的“•”字符。 因此,我們現在不僅要檢查第一個字符是否是數字,而是前3個字符,因為在整個日期範圍內的任何單個字符最終都會在某點處成為點或斜線。 所以為了簡單.slice() ,只需.slice()前三個字符(對未來shenanigans的小緩衝區),然後檢查數字。 應該注意的是,這些看不見的點可能會持續存在於您的代碼中。 如果你有更大的計劃,而不是把這個字符串打印到你的視圖中,我可能會深入研究。

∴更新單行:

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

這吸吮閱讀。 怎麼樣:

var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];

原始答案

我為你準備了一行:

new Date(Date.now()).toLocaleString().split(', ')[0];

[1]會給你一天的時間。


你可以使用moment.js: http://momentjs.com/ ://momentjs.com/

var m = moment().format("DD/MM/YYYY");

document.write(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>


你可以使用這個

<script>
function my_curr_date() {      
    var currentDate = new Date()
    var day = currentDate.getDate();
    var month = currentDate.getMonth() + 1;
    var year = currentDate.getFullYear();
    var my_date = month+"-"+day+"-"+year;
    document.getElementById("dateField").value=my_date;    
}
</script>

HTML是

<body onload='return my_curr_date();'>
    <input type='text' name='dateField' id='dateField' value='' />
</body>

你可以結帳

var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);

並參閱Date()構造函數的文檔。 link


使用new Date()生成一個包含當前日期和時間的新Date對象。

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();

if(dd<10) {
    dd = '0'+dd
} 

if(mm<10) {
    mm = '0'+mm
} 

today = mm + '/' + dd + '/' + yyyy;
document.write(today);

這會以mm / dd / yyyy的格式顯示今天的日期。

簡單地改變today = mm +'/'+ dd +'/'+ yyyy; 以任何你想要的格式。


如果你使用jQuery。 試試這個襯墊:

$.datepicker.formatDate('dd/mm/yy', new Date());

這是格式化日期的慣例

  • d - 一個月中的某天(不是前導零)
  • dd - 月份的日期(兩位數字)
  • o - 一年中的某天(無前導零)
  • oo - 一年中的一天(三位數字)
  • D - 天名短
  • DD - 天名長
  • m - 年的月份(無前導零)
  • 毫米 - 年的月份(兩位數字)
  • M - 月份名稱短
  • MM - 月份名稱長
  • y - 年(兩位數)
  • 年 - 年(四位數)

這裡是jQuery datepicker的參考


如果你對YYYY-MM-DD格式感到滿意,這也可以完成這項工作。

new Date().toISOString().split('T')[0]

2018-03-10


如果你正在尋找更多的日期格式細化控制,我徹底推薦檢查一下momentjs。 了不起的圖書館 - 只有5KB。 http://momentjs.com/


如果您只想要一個沒有時間信息的日期,請使用:

var today = new Date();
    today.setHours(0, 0, 0, 0);

document.write(today);


我不知道它是否會幫助任何人,但我使用它來獲取今天的Date對象。

new Date( 3600000*Math.floor(Date.now()/3600000) )

我認為這是一個老問題,但最簡單的方法如下:

var date = new Date();
var TimeStamp = date.toLocaleString();

function CurrentTime(){
  alert(TimeStamp);
}

這將抓住當前時間,將其傳遞給基於位置的字符串,然後可以調用函數CurrentTime來顯示時間。 對我而言,這將是獲得某物時間戳的最有效方法。


最短的答案是: new Date().toJSON().slice(0,10)



與此有什麼大不了的。最乾淨的方法是

var currentDate=new Date().toLocaleString().slice(0,10);


這可能會幫助你

var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());

這將以dd / MM / yyyy格式打印當前日期


var d = (new Date()).toString().split(' ').splice(1,3).join(' ');

document.write(d)

將其分解成以下步驟:

  1. (new Date()).toString()給出“Fri Jun 28 2013 15:30:18 GMT-0700(PDT)”

  2. (new Date()).toString().split(' ')將上面的字符串除以每個空格,並返回如下數組:[“Fri”,“Jun”,“28”,“2013”​​,“15: 31:14“,”GMT-0700“,”(PDT)“]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ')從上面的數組中取第二個,第三個和第四個值,並用空格連接它們,並返回一個字符串“Jun 28 2013”


var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

如果要重複使用utc變量(如new Date(utc) ,請使用replace選項,因為Firefox和Safari無法識別帶破折號的日期。


new Date().toISOString().slice(0,10); 

也可以工作


var date = new Date().toLocaleDateString("en-US");

另外,您可以使用兩個參數調用toLocaleDateString方法:

var date = new Date().toLocaleDateString("en-US", {
    "year": "numeric",
    "month": "numeric"
});

關於MSDN 。 有關MDN上的此方法的更多信息。





time