Answers:
使用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;
为所需的任何格式。
01
,02
...,09
Date.prototype.toLocaleDateString()
方法是一种更灵活的解决方案。自ECMAScript 5.1以来,它是JavaScript的一部分,并且得到了常绿浏览器的良好支持。MDN:toLocaleDateString()
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
replace
如果您要重复使用utc
变量,请使用选项,例如new Date(utc)
,因为Firefox和Safari无法识别带短划线的日期。
toUTCString()
返回为utc datetime。
moment( new Date().toJSON().slice(0, 10) )
更新!,向下滚动
如果您想让最终用户简单一些漂亮的东西... 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经过长时间的拖延,我终于在GitHub上进行了整理,并用我一直在使用的最终解决方案对其进行了更新。它甚至在最后一刻进行了一些编辑,使其更甜美!如果您正在寻找旧的jsFiddle,请参阅this。
此更新有2种样式,尽管相对于我上面的原始答案还小,但仍然相对较小。如果您要很小,那就去吧。
另请注意:这仍然比moment.js少一些。imo虽然moment.js很不错,但它有太多世俗的方法,需要像学习语言一样学习瞬间。我这里使用与PHP相同的通用格式:date。
味道1
new Date().format(String)
我的最爱。我知道忌讳,但在Date对象上效果很好。请注意,您可能需要对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
奖金风味(需要jQuery)
$.date(Date, String)
它包含的不仅仅是简单的format
选项。它扩展了基础Date对象,并包含诸如之类的方法addDays
。有关更多信息,请参见Git。
在此mod中,格式字符受PHP:date的启发。有关完整列表,请参阅我的自述文件
这个mod还具有更长的预制格式列表。要使用预制格式,只需输入其键名。dateFormat(new Date(), 'pretty-a');
您可能会注意到,可以使用double \
来转义字符。
最短的时间。
要获取类似“ 2018-08-03”的格式,请执行以下操作:
let today = new Date().toISOString().slice(0, 10)
console.log(today)
要获取类似“ 8/3/2018”的格式:
let today = new Date().toLocaleDateString()
console.log(today)
另外,您可以将语言环境作为参数传递,例如toLocaleDateString("sr")
,等等。
如果您只想要没有时间信息的日期,请使用:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
如果您想对日期格式进行更多的粒度控制,我强烈建议您查看一下momentjs。很棒的图书馆-只有5KB。 http://momentjs.com/
您可以使用moment.js:http://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>
moment().format("L")
尊重当前的语言环境。
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”
Date().split(' ').splice(1,3).join(' ')
var date = new Date().toLocaleDateString("en-US");
另外,您可以toLocaleDateString
使用两个参数来调用method :
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
new Date().toLocaleDateString("de-de")
为我做the俩。
如果您对YYYY-MM-DD格式感到满意,那么也可以完成这项工作。
new Date().toISOString().split('T')[0]
2018-03-10
您可以像下面这样通过静态方法获取当前日期:
var now = Date.now()
参考:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
var dtToday = new Date(date.now);
Varun的答案不考虑TimezoneOffset。这是一个做的版本:
var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11
的TimezoneOffset
是分钟,而Date构造函数采用毫秒,因此乘以60000
。
new Date().toDateString();
结果:
“ 2016年2月3日星期三”
因为toISOString()
只会返回当前UTC时间,而不是本地时间。我们必须使用'.toString()'函数来确定日期,yyyy-MM-dd
以使用类似以下格式的日期
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);
以yyyy-MM-ddTHH:mm:ss
格式获取日期和时间
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);
以yyyy-MM-dd HH:mm:ss
格式获取日期和时间
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
最新编辑:19年8月23日 的日期FNS库很像moment.js但有一个方法更小的空间。它使您可以选择要包含在项目中的功能,这样就不必编译整个库来格式化今天的日期。如果您的项目没有最小的第三方库,那么我将最高支持Samuel Meddows接受的解决方案。
在下面保存历史,因为它对一些人有帮助。但是从记录来看,它是很hacky的,很容易在没有警告的情况下被破坏,就像本文中的大多数解决方案一样
编辑2/7/2017 一种单行JS解决方案:
tl; dr
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最新和chrometodaysDate = "2/7/2017"
在IE10 +中返回“作品” *
说明
我发现IE10和IE Edge的功能有所不同。同new Date(Date.now()).toLocaleString()
作为输入,
IE10返回:
"Tuesday, February 07, 2017 2:58:25 PM"
我可以写一个大的long函数和FTFY。但是,您确实应该对这些东西使用moment.js。我的脚本只是清理了一下,并为您提供了扩展的传统美国符号:> todaysDate = "March 06, 2017"
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]
会给您一天中的时间。
你可以用这个
<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>
如果您使用的是jQuery。试试这个衬垫:
$.datepicker.formatDate('dd/mm/yy', new Date());
这是格式化日期的惯例
这是jQuery datepicker的参考
一个简单的实现方法(考虑到您当前的时区,它利用ISO yyyy-mm-dd格式)是:
let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"
通常,这是一种通用的兼容日期格式,您可以根据需要将其转换为纯日期值:
Date.parse(d); // 1582044297000
这有什么大不了的。最干净的方法是
var currentDate=new Date().toLocaleString().slice(0,10);
3/4/2018,
更好地返回错误new Date().toJSON().slice(0,10)
。
.slice(0,10)
这可能对您有帮助
var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());
这将以dd / MM / yyyy格式打印当前日期
这是获取格式化日期的好方法
let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);
我认为这是一个古老的问题,但最简单的方法如下:
var date = new Date();
var TimeStamp = date.toLocaleString();
function CurrentTime(){
alert(TimeStamp);
}
这将获取当前时间,并根据位置将其传递给字符串,然后您可以调用函数CurrentTime来显示时间。对我来说,这是为某事获取时间戳的最有效方法。
var currentTime = new Date();