[英]How do I get a date in YYYY-MM-DD format?
通常,如果我想得到日期,我可以做類似的事情
var d = new Date(); console.log(d);
這樣做的問題是,當我運行該代碼時,它返回:
2015 年 8 月 24 日星期一 4:20:00 GMT-0800(太平洋標准時間)
我怎樣才能讓 Date() 方法返回一個“MM-DD-YYYY”格式的值,這樣它就會返回如下內容:
2015 年 8 月 24 日
或者,也許是 MM-DD-YYYY H:M
8/24/2016 4:20
只需使用內置的.toISOString()
方法,如下所示: toISOString().split('T')[0]
。 簡單,干凈,全部在一行中。
var date = (new Date()).toISOString().split('T')[0]; document.getElementById('date').innerHTML = date;
<div id="date"></div>
請注意,格式化字符串的時區是UTC而不是本地時間。
下面的代碼是一種方法。 如果你有一個日期,把它傳遞給convertDate()
函數,它會返回一個 YYYY-MM-DD 格式的字符串:
var todaysDate = new Date();
function convertDate(date) {
var yyyy = date.getFullYear().toString();
var mm = (date.getMonth()+1).toString();
var dd = date.getDate().toString();
var mmChars = mm.split('');
var ddChars = dd.split('');
return yyyy + '-' + (mmChars[1]?mm:"0"+mmChars[0]) + '-' + (ddChars[1]?dd:"0"+ddChars[0]);
}
console.log(convertDate(todaysDate)); // Returns: 2015-08-25
還有一種方式:
var today = new Date().getFullYear()+'-'+("0"+(new Date().getMonth()+1)).slice(-2)+'-'+("0"+new Date().getDate()).slice(-2) document.getElementById("today").innerHTML = today
<div id="today">
您想要實現的目標可以通過原生 JavaScript 實現。 對象Date
具有生成您想要的輸出的方法。
下面是代碼示例:
var d = new Date();
console.log(d);
>>> Sun Jan 28 2018 08:28:04 GMT+0000 (GMT)
console.log(d.toLocaleDateString());
>>> 1/28/2018
console.log(d.toLocaleString());
>>> 1/28/2018, 8:28:04 AM
真的沒有必要重新發明輪子。
通過使用 moment.js 庫,您可以做到:
var datetime = new Date("2015-09-17 15:00:00"); datetime = moment(datetime).format("YYYY-MM-DD");
function formatdate(userDate){
var omar= new Date(userDate);
y = omar.getFullYear().toString();
m = omar.getMonth().toString();
d = omar.getDate().toString();
omar=y+m+d;
return omar;
}
console.log(formatDate("12/31/2014"));
var today = new Date();
function formatDate(date) {
var dd = date.getDate();
var mm = date.getMonth() + 1; //January is 0!
var yyyy = date.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
//return dd + '/' + mm + '/' + yyyy;
return yyyy + '/' + mm + '/' +dd ;
}
console.log(formatDate(today));
如果您嘗試獲取“local-ISO”日期字符串。 試試下面的代碼。
function (date) {
return new Date(+date - date.getTimezoneOffset() * 60 * 1000).toISOString().split(/[TZ]/).slice(0, 2).join(' ');
}
+date
從+date
獲取毫秒數。
參考: Date.prototype.getTimezoneOffset玩得開心:)
這是我創建的一個簡單函數,當我繼續從事一個項目時,我經常需要以這種格式獲取今天、昨天和明天的日期。
function returnYYYYMMDD(numFromToday = 0){
let d = new Date();
d.setDate(d.getDate() + numFromToday);
const month = d.getMonth() < 9 ? '0' + (d.getMonth() + 1) : d.getMonth() + 1;
const day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate();
return `${d.getFullYear()}-${month}-${day}`;
}
console.log(returnYYYYMMDD(-1)); // returns yesterday
console.log(returnYYYYMMDD()); // returns today
console.log(returnYYYYMMDD(1)); // returns tomorrow
可以很容易地修改為傳遞一個日期,但在這里你傳遞一個數字,它會從今天起返回那么多天。
這會將 unix 時間戳轉換為本地日期(+時間)
function UnixTimeToLocalDate = function( unix_epoch_time )
{
var date,
str;
date = new Date( unix_epoch_time * 1000 );
str = date.getFullYear() + '-' +
(date.getMonth() + 1 + '').padStart( 2, '0' ) + '-' +
(date.getDate() + '').padStart( 2, '0' );
// If you need hh:mm:ss too then
str += ' ' +
(date.getHours() + '').padStart( 2, '0' ) + ':' +
(date.getMinutes() + '').padStart( 2, '0' ) + ':' +
(date.getSeconds() + '').padStart( 2, '0' );
return str;
}
如果您想要一種適合排序的文本格式,請使用:
function formatDateYYYYMMDDHHMMSS(date){
// YYYY-MM-DD HH:MM:SS
const datePart = date.toISOString().split("T")[0]
const timePart = date.toLocaleString('en-US', {hour12: false}).split(",")[1]
return datePart + timePart
}
作為原型:
Date.prototype.toSortString = function(){
const date = new Date(this.valueOf());
return date.toISOString().split("T")[0] +
date.toLocaleString('en-US', {hour12: false}).split(",")[1]
}
fullYear-fullMonth-FullDay 的簡單一行優雅解決方案為 '2000-01-01'
new Date().toLocaleDateString("fr-CA",
{year:"numeric", month: "2-digit", day:"2-digit"}
)
const padTo2Digits = num => { return num.toString().padStart(2, '0') } const formatDate = date => { return [ date.getFullYear(), padTo2Digits(date.getMonth() + 1), padTo2Digits(date.getDate()) ].join('-') } let value = formatDate(new Date()) document.getElementById('dayFormatUS').innerHTML = value const transformDate = date => { const convert = date.split('-').reverse() return convert.join('/') } document.getElementById('dayFormatBR').innerHTML = transformDate(value)
<div> Format US - <span id='dayFormatUS'></span> </div> <div> Format BR - <span id='dayFormatBR'></span> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.