如何在JavaScript中获取当前日期?
答案 0 :(得分:2349)
使用new Date()
生成包含当前日期和时间的新Date
对象。
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = mm + '/' + dd + '/' + yyyy;
document.write(today);
这将以mm / dd / yyyy格式为您提供今天的日期。
只需将today = mm +'/'+ dd +'/'+ yyyy;
更改为您希望的任何格式。
答案 1 :(得分:385)
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
如果您要重复使用replace
变量,请使用utc
选项,例如new Date(utc)
,因为Firefox和Safari无法识别带破折号的日期。
答案 2 :(得分:206)
更新! ,向下滚动
如果您想为最终用户提供简单易用的东西...... 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, please see this。
此更新以 2 风格出现,仍然相对较小,但不如我上面的原始答案那么小。如果你想要非常小,那就去吧。
另请注意:这仍然比moment.js更臃肿。虽然moment.js很好,但是,它有许多世俗的方法,这需要学习时刻,好像它是一种语言。我这里使用与PHP:date相同的通用格式。
风味1
new Date().format(String)
我的个人爱好。我知道禁忌,但在日期对象上工作得很好。只要注意日期对象可能有的任何其他mod。
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
风味2
dateFormat(Date, String)
更传统的一体化方法。具有前一个的所有能力,但是通过带有日期参数的方法调用。
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
BONUS Flavor(需要jQuery)
$.date(Date, String)
这不仅仅包含一个简单的format
选项。它扩展了基本Date对象,并包含addDays
等方法。有关详细信息,请参阅Git。
在此mod中,格式字符的灵感来自PHP:date。有关完整列表,请参阅我的README
此mod还有更长的预制格式列表。要使用预制格式,只需输入其密钥名称即可。 dateFormat(new Date(), 'pretty-a');
您可能会注意到,您可以使用双\
来转义角色。
答案 3 :(得分:142)
尽可能短。
获得类似&#34; 2018-08-03&#34;的格式:
let today = new Date().toISOString().slice(0, 10)
console.log(today)
&#13;
获得类似&#34; 8/3/2018&#34;的格式:
let today = new Date().toLocaleDateString()
console.log(today)
&#13;
此外,您可以将locale作为参数传递,例如toLocaleDateString("sr")
等。
答案 4 :(得分:140)
如果您只想要一个没有时间信息的日期,请使用:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
答案 5 :(得分:93)
试试这个:
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
结果就像
15/2/2012
答案 6 :(得分:63)
如果您正在寻找对日期格式的更精细控制,我建议您查看momentjs。很棒的图书馆 - 只有5KB。 http://momentjs.com/
答案 7 :(得分:51)
您可以使用moment.js:http://momentjs.com/
var m = moment().format("DD/MM/YYYY");
document.write(m);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
&#13;
答案 8 :(得分:45)
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
将其分解为步骤:
(new Date()).toString()
给出“2013年6月28日星期五15:30:18 GMT-0700(PDT)”
(new Date()).toString().split(' ')
在每个空格上划分上面的字符串并返回一个数组,如下所示:[“Fri”,“Jun”,“28”,“2013”,“15:31:14”, “GMT-0700”,“(PDT)”]
(new Date()).toString().split(' ').splice(1,3).join(' ')
获取上述数组中的第二,第三和第四个值,将它们与空格连接,并返回一个字符串“Jun 28 2013”
答案 9 :(得分:44)
每次都有效:
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear() + "-" + (month) + "-" + (day);
console.log(today);
答案 10 :(得分:41)
var date = new Date().toLocaleDateString("en-US");
此外,您可以使用两个参数调用方法toLocaleDateString
:
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
答案 11 :(得分:29)
更清洁,更简单的版本:
new Date().toLocaleString();
根据用户的区域设置,变化:
2/27/2017,9:15:41 AM
答案 12 :(得分:23)
如果您对YYYY-MM-DD格式感到满意,这也可以完成这项工作。
new Date().toISOString().split('T')[0]
2018-03-10
答案 13 :(得分:22)
您可以使用扩展Date对象的Date.js库,因此您可以使用.today()方法。
答案 14 :(得分:18)
您可以像现在这样获取当前日期调用静态方法:
var now = Date.now()
参考:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
答案 15 :(得分:16)
大多数其他答案都提供带时间的日期。
如果您只需要日期。
new Date().toISOString().split("T")[0]
输出
[ '2021-02-08', '06:07:44.629Z' ]
如果您想要 /
格式,请使用 replace
。
如果您想要其他格式,最好使用 momentjs
。
答案 16 :(得分:15)
Varun's answer未考虑TimezoneOffset。这是一个版本:
var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11
TimezoneOffset
是分钟,而Date构造函数需要几毫秒,因此乘以60000
。
答案 17 :(得分:14)
最短的答案是:new Date().toJSON().slice(0,10)
答案 18 :(得分:11)
如果您想要一种简单的DD/MM/YYYY
格式,我只想出这个简单的解决方案,尽管它不会为缺失的零加前缀。
var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );
&#13;
答案 19 :(得分:10)
由于toISOString()
仅返回当前UTC时间,而不是本地时间。我们必须使用&#39; .toString()&#39;来制作日期。函数以yyyy-MM-dd
格式获取日期,如
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);
&#13;
以yyyy-MM-ddTHH:mm:ss
格式
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);
&#13;
以yyyy-MM-dd HH:mm:ss
格式
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
&#13;
答案 20 :(得分:10)
new Date().toDateString();
结果:
“2016年2月3日星期三”
答案 21 :(得分:8)
new Date().toISOString().slice(0,10);
也会起作用
答案 22 :(得分:7)
您可以使用此
<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>
答案 23 :(得分:6)
单行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];
edge,ff latest,&amp; Chrome返回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"
< / p>
IE EDGE返回:
"2/7/2017 2:59:27 PM"
当然不可能那么容易。 Edge的日期字符串在每个可见的字符串之间都有不可见的“•”字符。因此,我们现在不仅要检查第一个字符是否是数字,而是前三个字符,因为事实证明任何单个字符都是整个日期范围内的字符最终会在某个点上成为点或斜线。所以为了简单起见,只需.slice()前三个字符(对未来的恶作剧的微小缓冲),然后检查数字。应该注意的是,这些不可见的点可能会持久存在于您的代码中。如果你有更大的计划,而不仅仅是打印这个字符串,我可能会深入研究。
∴更新了单行:
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]
将为您提供时间。
答案 24 :(得分:6)
如果您使用的是jQuery。试试这个班轮:
$.datepicker.formatDate('dd/mm/yy', new Date());
以下是格式化日期的惯例
以下是jQuery datepicker
的参考资料答案 25 :(得分:5)
一种简单的实现方法(考虑到您当前的时区,它利用了ISO yyyy-mm-dd格式)是
let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"
通常,这是一种通用的兼容日期格式,如果需要,您可以将其转换为纯日期值:
Date.parse(d); // 1582044297000
答案 26 :(得分:5)
尝试
`${Date()}`.slice(4,15)
console.log( `${Date()}`.slice(4,15) )
我们在这里使用标准的JS功能:template literals,Date object(强制转换为字符串)和slice。这可能是满足OP要求(没有时间,只有日期)的最短解决方案
答案 27 :(得分:4)
对此最重要的是......最干净的方法是
var currentDate=new Date().toLocaleString().slice(0,10);
答案 28 :(得分:4)
使用Date.prototype.toLocaleDateString()
中内置的JS
来自MDN文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
const options = {
month: '2-digit',
day: '2-digit',
year: 'numeric',
};
console.log(new Date().toLocaleDateString('en-US', options)); // mm/dd/yyyy
答案 29 :(得分:4)
这么多复杂的答案...
只需使用 new Date()
,如果您需要它作为字符串,只需使用 new Date().toISOString()
享受吧!
答案 30 :(得分:4)
你可以结帐
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
答案 31 :(得分:3)
这可能对您有所帮助
var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());
这将以dd / MM / yyyy格式打印当前日期
答案 32 :(得分:3)
var dateTimeToday = new Date();
var dateToday = new Date(
dateTimeToday.getFullYear(),
(dateTimeToday.getMonth() + 1) /*Jan = 0! */,
dateTimeToday.getDate(),
0,
0,
0,
0);
答案 33 :(得分:3)
我认为这是一个老问题,但最简单的方法如下:
var date = new Date();
var TimeStamp = date.toLocaleString();
function CurrentTime(){
alert(TimeStamp);
}
这将获取当前时间,将其传递给基于位置的字符串,然后您可以调用函数CurrentTime来显示时间。对我来说,这是获得时间戳的最有效方法。
答案 34 :(得分:3)
我不知道它是否会对任何人有所帮助,但我正在使用它来获取今天的Date对象。
new Date( 3600000*Math.floor(Date.now()/3600000) )
答案 35 :(得分:2)
2.39KB缩小。一个档案。 https://github.com/rhroyston/clock-js
只是想帮助......
答案 36 :(得分:2)
在这里找到的大多数答案都是正确的仅,如果您需要本地计算机(客户端)上的当前时间,而该时间通常被认为是不可靠的(这可能与其他来源有所不同)系统)。
可靠的来源是:
在session = winrm.Session(host, auth=(user, password), transport='credssp')
prtl = session.protocol
encoded_ps = b64encode(script.encode('utf_16_le')).decode('ascii')
command = 'powershell -encodedcommand {0}'.format(encoded_ps)
shell_id = prtl.open_shell()
command_id = prtl.run_command(shell_id, command)
实例上调用的方法将根据您的计算机的本地时间返回一个值。
更多详细信息可以在“ MDN Web文档”中找到:JavaScript Date object。
为方便起见,我在他们的文档中添加了相关说明:
(...)获取日期和时间或其组成部分的基本方法都在本地(即主机系统)时区和偏移量下工作。
另一个提及此问题的消息来源是:JavaScript date and time object
需要特别注意的是,如果某人的时钟关闭了几个小时或处于不同的时区,那么Date对象将创建与您自己的计算机上创建的时间不同的时间。
您可以使用一些可靠的来源:
但是,如果准确性对于您的用例而言并不重要,或者您只需要将日期与本地计算机的时间相关,则可以安全地使用Javascript的Date
基本方法,例如Date
。
答案 37 :(得分:2)
如果您要对日期格式进行更多的细化控制,我强烈建议您查看日期FNS。很棒的库-比moment.js小得多,它的基于函数的方法使其比其他基于类的库快得多。提供日期所需的大量操作。
答案 38 :(得分:2)
答案 39 :(得分:1)
我想我会粘贴一个真实日期用的东西:
function realDate(date){
return date.getDate() + "/" + (date.getMonth()+1) + "/" + date.getUTCFullYear();
}
var ourdate = realDate(new Date);
答案 40 :(得分:1)
如果您希望格式化为字符串。
statusUpdate = "time " + new Date(Date.now()).toLocaleTimeString();
输出“时间11:30:53 AM”
答案 41 :(得分:1)
此答案适用于希望使用ISO-8601格式和时区的日期的人。 对于那些不想包含任何日期库的人来说,它是纯JS。
var date = new Date();
var timeZone = date.toString();
//Get timezone ( 'GMT+0200' )
var timeZoneIndex = timeZone.indexOf('GMT');
//Cut optional string after timezone ( '(heure de Paris)' )
var optionalTimeZoneIndex = timeZone.indexOf('(');
if(optionalTimeZoneIndex != -1){
timeZone = timeZone.substring(timeZoneIndex, optionalTimeZoneIndex);
}
else{
timeZone = timeZone.substring(timeZoneIndex);
}
//Get date with JSON format ( '2019-01-23T16:28:27.000Z' )
var formattedDate = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON();
//Cut ms
formattedDate = formattedDate.substring(0,formattedDate.indexOf('.'));
//Add timezone
formattedDate = formattedDate + ' ' + timeZone;
console.log(formattedDate);
在控制台中打印如下内容:
2019-01-23T17:12:52 GMT + 0100
JSFiddle:https://jsfiddle.net/n9mszhjc/4/
答案 42 :(得分:1)
(function() { var d = new Date(); return new Date(d - d % 86400000); })()
答案 43 :(得分:1)
这可能对您有所帮助
let d = new Date();
this.dateField = element(by.xpath('xpath here'));
this.datetField.sendKeys((d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear());
答案 44 :(得分:1)
这很有用;
var today = new Date();
var date = today.getFullYear()+'/'+(today.getMonth()+1)+'/'+today.getDate();
答案 45 :(得分:1)
这是我目前的最爱,因为它既灵活又模块化。它是(至少)三个简单函数的集合:
/**
* Returns an array with date / time information
* Starts with year at index 0 up to index 6 for milliseconds
*
* @param {Date} date date object. If falsy, will take current time.
* @returns {[]}
*/
getDateArray = function(date) {
date = date || new Date();
return [
date.getFullYear(),
exports.pad(date.getMonth()+1, 2),
exports.pad(date.getDate(), 2),
exports.pad(date.getHours(), 2),
exports.pad(date.getMinutes(), 2),
exports.pad(date.getSeconds(), 2),
exports.pad(date.getMilliseconds(), 2)
];
};
这里是打击垫功能:
/**
* Pad a number with n digits
*
* @param {number} number number to pad
* @param {number} digits number of total digits
* @returns {string}
*/
exports.pad = function pad(number, digits) {
return new Array(Math.max(digits - String(number).length + 1, 0)).join(0) + number;
};
最后,我可以手工构建我的日期字符串,或者使用一个简单的函数来为我完成:
/**
* Returns nicely formatted date-time
* @example 2015-02-10 16:01:12
*
* @param {object} date
* @returns {string}
*/
exports.niceDate = function(date) {
var d = exports.getDateArray(date);
return d[0] + '-' + d[1] + '-' + d[2] + ' ' + d[3] + ':' + d[4] + ':' + d[5];
};
/**
* Returns a formatted date-time, optimized for machines
* @example 2015-02-10_16-00-08
*
* @param {object} date
* @returns {string}
*/
exports.roboDate = function(date) {
var d = exports.getDateArray(date);
return d[0] + '-' + d[1] + '-' + d[2] + '_' + d[3] + '-' + d[4] + '-' + d[5];
};
答案 46 :(得分:1)
要获取日期,然后将其内置到javascript中:
new Date();
如果您正在寻找日期格式,并且仍在使用Kendo JQuery UI库来访问您的网站,那么我建议您使用内置的kendo函数:
kendo.toString(new Date(), "yyMMdd"); //or any other typical date format
有关受支持格式的完整列表see here
答案 47 :(得分:1)
试试这个...... HTML
<p id="date"></p>
JS
<script>
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.getElementById("date").innerHTML =("<b>" + day + "/" + month + "/" + year + "</b>")
</script>
当前日期的工作演示
答案 48 :(得分:0)
适用于任何需要类似 2020年4月9日的日期格式的人
function getDate(){
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = months[today.getMonth()];
var yyyy = today.getFullYear();
today = dd + "-" + mm + "-" + yyyy;
return today;
}
getDate();
答案 49 :(得分:0)
// Try this simple way
const today = new Date();
let date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
console.log(date);
答案 50 :(得分:0)
我的方式
let dateString = new Date().toLocaleString().split(',').find(() => true);
答案 51 :(得分:0)
使用以下代码片段
var currentDate = new Date();
var date=currentDate.getDate()+'/'+(currentDate.getMonth()+1)+'/'+currentDate.getFullYear();
console.log(date);
答案 52 :(得分:0)
如果仅需要字符串表示形式,则只需使用:
Date();
答案 53 :(得分:0)
我的解决方案使用字符串文字Find out more...
// Declare Date as d
var d = new Date()
// Inline formatting of Date
const exampleOne = `${d.getDay()}-${d.getMonth() + 1}-${d.getFullYear()}`
// January is 0 so +1 is required
// With Breaklines and Operators
const exampleTwo = `+++++++++++
With Break Lines and Arithmetic Operators Example
Year on newline: ${d.getFullYear()}
Year minus(-) 30 years: ${d.getFullYear() - 30}
You get the idea...
+++++++++++`
console.log('=============')
console.log(exampleOne)
console.log('=============')
console.log(exampleTwo)
答案 54 :(得分:0)
这是获取格式化日期的好方法
let date=new Date().toLocaleDateString("en",{year:"numeric",day:"2-digit",month:"2-digit"});
console.log(date);
答案 55 :(得分:0)
能够以自定义格式呈现并在不同的语言环境中使用月份名称:
const locale = 'en-us';
const d = new Date(date);
const day = d.getDate();
const month = d.toLocaleString(locale, { month: 'long' });
const year = d.getFullYear();
const time = d.toLocaleString(locale, { hour12: false, hour: 'numeric', minute: 'numeric'});
return `${month} ${day}, ${year} @ ${time}`; // May 5, 2019 @ 23:41
答案 56 :(得分:0)
如果您对Sun Jan 24 2016 21:23:07 GMT+0100 (CET)
格式感到满意,可以使用以下代码:
var today = new Date();
如果要格式化输出,请考虑使用Date.prototype.toLocaleDateString()
:
var today = new Date().toLocaleDateString('de-DE', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
});
如果您在现代浏览器上执行该代码(2016年1月24日),它将生成字符串Sonntag, 24. Januar 2016
。然而,较旧的浏览器可能产生不同的结果,例如。 IE&lt; 11不支持locales或options参数。
如果Date.prototype.toLocaleDateString()
不够灵活,无法满足您的任何需求,您可能需要考虑创建一个如下所示的自定义Date对象:
var DateObject = (function() {
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var date = function(str) {
this.set(str);
};
date.prototype = {
set : function(str) {
var dateDef = str ? new Date(str) : new Date();
this.day = dateDef.getDate();
this.dayPadded = (this.day < 10) ? ("0" + this.day) : "" + this.day;
this.month = dateDef.getMonth() + 1;
this.monthPadded = (this.month < 10) ? ("0" + this.month) : "" + this.month;
this.monthName = monthNames[this.month - 1];
this.year = dateDef.getFullYear();
}
};
return date;
})();
如果您今天(2016年1月24日)包含该代码并执行new DateObject()
,它将生成具有以下属性的对象:
day: 24
dayPadded: "24"
month: 1
monthPadded: "01"
monthName: "January"
year: 2016
答案 57 :(得分:0)
您可以使用我在下面给出的DATE API来获取日期格式的日常使用以及获取当前日期,昨天等。 如何使用 例如
var dt = new Date();
/// ANY DATE YOU WANT -- dt = new Date(""July 21, 1983 01:15:00"")
dateObj = dt.getFormattedDate();
alert( dateObj.isToday() );
alert( dateObj.todayDay() );
alert( dateObj.monthNameDayYear() );
(function () {
fnDateProcessor = function () {
var that = this;
return {
yyyymmdd: function (separator) {
var fdate = this.formatDate(true, true) ,
separator = separator ? separator : "-";
return fdate.year + separator + fdate.month + separator + fdate.day;
},
monthNameDayYear: function () {
var fdate = this.formatDate(true, true);
return fdate.monthName + " " + fdate.day + ", " + fdate.year;
},
ddmmyyyy: function (separator) {
var fdate = this.formatDate(true, true) ,
separator = separator ? separator : "/";
return fdate.day + separator + fdate.month + separator + fdate.year;
},
meridianTime: function () {
var fdate = this.formatDate();
return fdate.hour + ":" + fdate.minute + " " + fdate.meridian;
},
monthDay: function (separator) {
var fdate = this.formatDate();
separator = checkSeparator(separator);
return fdate.monthName.substring(0, 3) + separator + fdate.day;
},
weekMonthDayYear: function () {
var fdate = this.formatDate();
//separator = checkSeparator(separator);
return fdate.weekDay + " " + fdate.monthName.substring(0, 3) +
fdate.day + " ," + fdate.year;
},
timeZoneInclusive: function () {
return new Date(that);
},
todayDay: function () { return new Date().getDate(); },
todayMonth: function () { return new Date().getMonth() + 1; },
dateDay: function () { return this.formatDate().day; },
dateMonth: function () { return this.formatDate().month; },
isToday: function () { return this.sameDate(new Date()); },
isYesterday: function () {
d = new Date(); d.setDate(d.getDate() - 1);
return this.sameDate(d);
},
formatDate: function () {
var zeroPaddedMnth = true, zeroPaddedDay = false,
zeroPaddedHr = false, zeroPaddedMin = true;
// Possible to take Options arg that overide / merge to defaults
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var weekDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var day = getFormattedDay(that.getDate(), zeroPaddedDay);
var monthIndex = that.getMonth();
var month = getFormattedMonth(monthIndex + 1, zeroPaddedMnth);
var year = that.getFullYear();
var wkDay = that.getDay();
var hour = getFormattedHour(that.getHours(), zeroPaddedHr);
var minute = getFormattedMinute(that.getMinutes(), zeroPaddedMin);
var meridian = getMeridian(that.getHours());
return {
"day": day, "monthName": monthNames[monthIndex], "month": month,
"weekDay": weekDays[wkDay], "year": year, "hour": hour, "minute": minute,
"meridian": meridian
};
},
compareDate: function (d2) { /// validates if caller is less than argument
d2 = _isString(d2) ? new Date(d2) : d2;
return !this.sameDate(d2)
&& typeof d2 != "number"
? that < d2 : false;
},
sameDate: function (d) {
return that.getFullYear() === d.getFullYear()
&& that.getDate() === d.getDate()
&& that.getMonth() === d.getMonth();
},
dateAfter: function (separator) {
var fdate = this.formatDate();
var separator = separator ? separator : "-";
return fdate.year + separator + fdate.month + separator + (fdate.day + 1);
}
};
};
function _isString(obj) {
var toString = Object.prototype.toString;
return toString.call(obj) == '[object String]';
}
function checkSeparator(separator) {
// NOT GENERIC ... NEEDS REVISION
switch (separator) {
case " ": sep = separator; break;
case ",": sep = " ,"; break;
default:
sep = " "; break;
}
return sep;
}
function getFormattedHour(h, zeroPadded) {
h = h % 12;
h = h ? h : 12; // 12 instead of 00
return zeroPadded ? addZero(h) : h;
}
function getFormattedMinute(m, zeroPadded) {
return zeroPadded ? addZero(m) : m;
}
function getFormattedDay(dd, zeroPadded) {
return zeroPadded ? addZero(dd) : dd;
}
function getFormattedMonth(mm, zeroPadded) {
return zeroPadded ? addZero(mm) : mm;
}
function getMeridian(hr) {
return hr >= 12 ? 'PM' : 'AM';
}
function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}
Date.prototype.getFormattedDate = fnDateProcessor;
} ());
答案 58 :(得分:-1)
尝试此操作,您可以相应地调整日期格式:
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1;
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
if (mm < 10) {
mm = '0' + mm;
}
var myDate= dd + '-' + mm + '-' + yyyy;
答案 59 :(得分:-1)
Date.prototype.toLocalFullDateStringYYYYMMDDHHMMSS = function () {
if (this != null && this != undefined) {
let str = this.getFullYear();
str += "-" + round(this.getMonth() + 1);
str += "-" + round(this.getDate());
str += "T";
str += round(this.getHours());
str += ":" + round(this.getMinutes());
str += ":" + round(this.getSeconds());
return str;
} else {
return this;
}
function round(n){
if(n < 10){
return "0" + n;
}
else return n;
}};