Sam*_*ows 2528
使用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);
Run Code Online (Sandbox Code Playgroud)
这将以mm/dd/yyyy的格式为您提供今天的日期.
只需更改today = mm +'/'+ dd +'/'+ yyyy;
为您希望的任何格式.
Var*_*aaj 417
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
Run Code Online (Sandbox Code Playgroud)
replace
如果您要重复使用该utc
变量,请使用该选项,例如new Date(utc)
,因为Firefox和Safari无法识别带破折号的日期.
SpY*_*3HH 225
更新!,向下滚动
如果你想为最终用户提供简单漂亮的东西...... 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;
Run Code Online (Sandbox Code Playgroud)
<h1></h1>
Run Code Online (Sandbox Code Playgroud)
UBBER UPDATE经过多次拖延,我终于GitHubbed并用我自己使用的最终解决方案更新了这个.它甚至还有一些最后的修改,以使它更甜!如果你正在寻找旧的jsFiddle,请看这个.
此更新有两种风格,但仍然相对较小,但不如我上面的原始答案那么小.如果你想要非常小,那就去吧.
另请注意:这仍然比moment.js更少臃肿.虽然moment.js很好,但是它有许多世俗的方法,这需要学习时刻,好像它是一种语言.我这里使用与PHP相同的通用格式:日期.
味道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
Run Code Online (Sandbox Code Playgroud)
风味2
dateFormat(Date, String)
更传统的一体化方法.具有以前的所有能力,但是通过带有Date param的方法调用.
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
Run Code Online (Sandbox Code Playgroud)
BONUS Flavor(需要jQuery)
$.date(Date, String)
这不仅包含一个简单的format
选项.它扩展了基本Date对象,并包含诸如的方法addDays
.有关更多信息,请参阅Git.
在这个mod中,格式字符的灵感来自PHP:date.有关完整列表,请参阅我的自述文件
此mod还有更长的预制格式列表.要使用预制格式,只需输入其密钥名称即可.dateFormat(new Date(), 'pretty-a');
您可能会注意到,您可以使用double \
来转义角色.
Dam*_*ica 182
最短的.
要获得"2018-08-03"之类的格式:
let today = new Date().toISOString().slice(0, 10)
console.log(today)
Run Code Online (Sandbox Code Playgroud)
要获得"8/3/2018"之类的格式:
let today = new Date().toLocaleDateString()
console.log(today)
Run Code Online (Sandbox Code Playgroud)
此外,您可以将语言环境作为参数传递,例如toLocaleDateString("sr")
,等等.
Mar*_*hal 157
如果您只想要一个没有时间信息的日期,请使用:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
Run Code Online (Sandbox Code Playgroud)
Jim*_*y M 99
试试这个:
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
Run Code Online (Sandbox Code Playgroud)
结果就像
15/2/2012
Run Code Online (Sandbox Code Playgroud)
ben*_*een 66
如果您正在寻找对日期格式的更精细控制,我建议您查看momentjs.很棒的图书馆 - 只有5KB. http://momentjs.com/
Mor*_*rad 54
你可以使用moment.js:http://momentjs.com/
var m = moment().format("DD/MM/YYYY");
document.write(m);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
小智 48
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
Run Code Online (Sandbox Code Playgroud)
把它分解成几个步骤:
(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"
ros*_*han 46
每次都有效:
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);
Run Code Online (Sandbox Code Playgroud)
Dun*_*xim 43
var date = new Date().toLocaleDateString("en-US");
Run Code Online (Sandbox Code Playgroud)
此外,您可以toLocaleDateString
使用两个参数调用方法:
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
Run Code Online (Sandbox Code Playgroud)
Ode*_*ner 29
更清洁,更简单的版本:
new Date().toLocaleString();
Run Code Online (Sandbox Code Playgroud)
结果因用户的区域设置而异:
2/27/2017,9:15:41 AM
Shu*_*kar 23
大多数其他答案都提供带时间的日期。
如果你只需要约会。
new Date().toISOString().split("T")[0]
Run Code Online (Sandbox Code Playgroud)
输出
[ '2021-02-08', '06:07:44.629Z' ]
Run Code Online (Sandbox Code Playgroud)
如果你想要它的/
格式,请使用replaceAll
.
new Date().toISOString().split("T")[0].replaceAll("-", "/")
Run Code Online (Sandbox Code Playgroud)
如果您想要其他格式,那么最好使用momentjs
.
Jos*_*jas 18
您可以像现在这样获取当前日期调用静态方法:
var now = Date.now()
Run Code Online (Sandbox Code Playgroud)
参考:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
use*_*062 16
Varun的答案没有考虑TimezoneOffset.这是一个版本:
var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11
Run Code Online (Sandbox Code Playgroud)
的TimezoneOffset
是分钟,而Date构造函数采用毫秒,因此乘以60000
.
jaf*_*ech 11
因为toISOString()
只返回当前的UTC时间,而不是本地时间.我们必须使用'.toString()'函数来设置日期,以获取日期yyyy-MM-dd
格式
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);
Run Code Online (Sandbox Code Playgroud)
以yyyy-MM-ddTHH:mm:ss
格式获取日期和时间
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);
Run Code Online (Sandbox Code Playgroud)
以yyyy-MM-dd HH:mm:ss
格式获取日期和时间
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
Run Code Online (Sandbox Code Playgroud)
Phi*_*tts 10
如果你想要一个简单的DD/MM/YYYY
格式,我只想出这个简单的解决方案,虽然它没有前缀缺失的零.
var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );
Run Code Online (Sandbox Code Playgroud)
尝试
`${Date()}`.slice(4,15)
Run Code Online (Sandbox Code Playgroud)
`${Date()}`.slice(4,15)
Run Code Online (Sandbox Code Playgroud)
我们在这里使用标准的 JS 功能:模板文字、转换为字符串的Date 对象和slice。这可能是满足 OP 要求的最短解决方案(没有时间,只有日期)
使用内置的 JSDate.prototype.toLocaleDateString()
来自 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
Run Code Online (Sandbox Code Playgroud)
小智 8
// Try this simple way
const today = new Date();
let date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
console.log(date);
Run Code Online (Sandbox Code Playgroud)
你可以用它
<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>
Run Code Online (Sandbox Code Playgroud)
HTML是
<body onload='return my_curr_date();'>
<input type='text' name='dateField' id='dateField' value='' />
</body>
Run Code Online (Sandbox Code Playgroud)
一线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 latest,&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"
Run Code Online (Sandbox Code Playgroud)
我可以写一个很长的函数和FTFY.但你真的应该使用moment.js这个东西.我的脚本只是清理它并为您提供扩展的传统美国符号:> todaysDate = "March 06, 2017"
IE EDGE返回:
"?2?/?7?/?2017? ?2?:?59?:?27? ?PM"
Run Code Online (Sandbox Code Playgroud)
当然,这可不容易.Edge的日期字符串在每个可见的字符串之间都有不可见的"•"字符.因此,我们现在不仅要检查第一个字符是否是数字,而且是前3个字符,因为事实证明整个日期范围内的任何单个字符最终都会在某个点上成为点或斜线.所以为了简单起见,只需.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];
Run Code Online (Sandbox Code Playgroud)
这很糟糕.怎么样:
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];
Run Code Online (Sandbox Code Playgroud)
原始答案
我有一个单行代表:
new Date(Date.now()).toLocaleString().split(', ')[0];
Run Code Online (Sandbox Code Playgroud)
并[1]
会给你一天的时间.
如果您\xe2\x80\x99想要格式化为字符串。
\nstatusUpdate = "time " + new Date(Date.now()).toLocaleTimeString();\n
Run Code Online (Sandbox Code Playgroud)\n输出:“时间 11:30:53 AM”
\n小智 7
实现这一目标的直接方法(同时考虑到您当前的时区,它利用了 ISO yyyy-mm-dd 格式)是:
let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"
Run Code Online (Sandbox Code Playgroud)
通常,这是一种非常通用的兼容日期格式,如果需要,您可以将其转换为纯日期值:
Date.parse(d); // 1582044297000
Run Code Online (Sandbox Code Playgroud)
小智 6
你可以结帐这个
var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);
Run Code Online (Sandbox Code Playgroud)
并查看 Date() 构造函数的文档。 关联
如果到“当前日期”你正在考虑“今天”,那么这个技巧可能对你有用:
> new Date(3600000*Math.floor(Date.now()/3600000))
2020-05-07T07:00:00.000Z
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您将获得今天的日期实例,时间为 0:00:00。
操作原理很简单:我们取当前时间戳,将其划分为 1 天,以毫秒表示。我们会得到一小部分。通过使用Math.floor,我们去掉了分数,所以我们得到一个整数。现在,如果我们将其乘以一天(再次 - 以毫秒为单位),我们将获得一个日期时间戳,其时间正好在一天的开始。
> new Date(3600000*Math.floor(Date.now()/3600000))
2020-05-07T07:00:00.000Z
Run Code Online (Sandbox Code Playgroud)
干净简单。
如果你正在使用jQuery.尝试这一个班轮:
$.datepicker.formatDate('dd/mm/yy', new Date());
Run Code Online (Sandbox Code Playgroud)
以下是格式化日期的约定
这是jQuery datepicker的参考
这是很好的格式化日期
let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);
Run Code Online (Sandbox Code Playgroud)
这有很多作用;
var today = new Date();
var date = today.getFullYear()+'/'+(today.getMonth()+1)+'/'+today.getDate();
document.write(date);
Run Code Online (Sandbox Code Playgroud)
凡today.getFullYear()获得当年,
today.getMonth()+1获取当前月份
而today.getDate()获取今天的日期。所有这些都用“/”连接起来。
var dateTimeToday = new Date();
var dateToday = new Date(
dateTimeToday.getFullYear(),
(dateTimeToday.getMonth() + 1) /*Jan = 0! */,
dateTimeToday.getDate(),
0,
0,
0,
0);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2497555 次 |
最近记录: |