我发现IE10和IE Edge做的事情有点不同......去看看 . 以 new Date(Date.now()).toLocaleString() 作为输入,
IE10返回:
"Tuesday, February 07, 2017 2:58:25 PM"
我可以写一个很长的函数和FTFY . 但 you really ought to use moment.js for this stuff. 我的脚本只是清理它并为您提供扩展的传统美国符号: > todaysDate = "March 06, 2017"
IE EDGE返回:
"2/7/2017 2:59:27 PM"
当然,这可不容易 . Edge's date string has invisible "•" characters between each visible one. 因此,我们现在不仅要检查第一个字符是否是数字,而且是前3个字符,因为事实证明整个日期范围内的任何单个字符最终都会在某个点上成为点或斜线 . 所以为了简单起见,只需要前三个字符(针对未来恶作剧的微小缓冲),然后检查数字 . 应该注意的是,这些不可见的点可能会持久存在于您的代码中 . 我有更大的计划,而不仅仅是将这个字符串打印到你的视图中 .
∴ updated one-liner:
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];
ORIGINAL ANSWER
我有一个单行代表:
new Date(Date.now()).toLocaleString().split(', ')[0];
new Date( 3600000*Math.floor(Date.now()/3600000) )
3
你可以用它
<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>
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);
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);
document.write(today);
7
var dateTimeToday = new Date();
var dateToday = new Date(
dateTimeToday.getFullYear(),
(dateTimeToday.getMonth() + 1) /*Jan = 0! */,
dateTimeToday.getDate(),
0,
0,
0,
0);
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
30 回答
如果您要重用
utc
变量(例如new Date(utc)
),请使用replace
选项,因为Firefox和Safari无法识别带破折号的日期 .如果你想要一个简单的
DD/MM/YYYY
格式,我've just come up with this simple solution, although it doesn' t前缀缺少零 .Varun's answer未考虑TimezoneOffset . 这是一个版本:
TimezoneOffset
是分钟,而Date构造函数需要毫秒,因此乘以60000
.最短的答案是:
new Date().toJSON().slice(0,10)
如果您对YYYY-MM-DD格式感到满意,这也可以完成 .
new Date().toISOString().split('T')[0]
2018-03-10
也会工作
这有什么大不了的......最干净的方法是
var currentDate=new Date().toLocaleString().slice(0,10);
A one-line JS solution:
EDIT 2/7/2017
我发现IE10和IE Edge做的事情有点不同......去看看 . 以
new Date(Date.now()).toLocaleString()
作为输入,IE10返回:
我可以写一个很长的函数和FTFY . 但 you really ought to use moment.js for this stuff. 我的脚本只是清理它并为您提供扩展的传统美国符号:
> todaysDate = "March 06, 2017"
IE EDGE返回:
当然,这可不容易 . Edge's date string has invisible "•" characters between each visible one. 因此,我们现在不仅要检查第一个字符是否是数字,而且是前3个字符,因为事实证明整个日期范围内的任何单个字符最终都会在某个点上成为点或斜线 . 所以为了简单起见,只需要前三个字符(针对未来恶作剧的微小缓冲),然后检查数字 . 应该注意的是,这些不可见的点可能会持久存在于您的代码中 . 我有更大的计划,而不仅仅是将这个字符串打印到你的视图中 .
∴ updated one-liner:
这很糟糕 . 怎么样:
ORIGINAL ANSWER
我有一个单行代表:
和
[1]
会给你一天的时间 .你可以使用moment.js:http://momentjs.com/
我不知道它是否会对任何人有所帮助,但我正在使用它来获取今天的Date对象 .
你可以用它
HTML是
The shortest possible.
要获得类似“2018-08-03”的格式:
要获得像“8/3/2018”这样的格式:
此外,您可以传递locale作为参数,例如
toLocaleDateString("sr")
等 .这可能对你有所帮助
这将以dd / MM / yyyy格式打印当前日期
由于
toISOString()
仅返回当前UTC时间,而不是本地时间 . 我们必须使用'.toString()'函数来制作日期,以获得yyyy-MM-dd
格式的日期To get date and time into in yyyy-MM-ddTHH:mm:ss format
To get date and time into in yyyy-MM-dd HH:mm:ss format
使用
new Date()
生成包含当前日期和时间的新Date
对象 .这将以mm / dd / yyyy的格式为您提供今天的日期 .
只需将
today = mm +'/'+ dd +'/'+ yyyy;
更改为您希望的任何格式 .您可以使用扩展Date对象的Date.js库,因此您可以使用.today()方法 .
你可以结帐
并查看Date()构造函数的文档 . link
如果您只想要一个没有时间信息的日期,请使用:
您可以像现在这样获取当前日期调用静态方法:
参考:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
我认为这是一个老问题,但最简单的方法如下:
这将获取当前时间,将其传递给基于位置的字符串,然后您可以调用函数CurrentTime来显示时间 . 对我来说,这是获得时间戳的最有效方法 .
把它分解为几个步骤:
(new Date()).toString()
给"Fri Jun 28 2013 15:30:18 GMT-0700 (PDT)"(new Date()).toString().split(' ')
在每个空格上划分上面的字符串并返回一个数组,如下所示:[_ 87373,"Jun",_ "28","2013","15:31:14",_ 87878,"(PDT)"](new Date()).toString().split(' ').splice(1,3).join(' ')
从上面的数组中获取第二个,第三个和第四个值,用空格连接它们,并返回一个字符串"Jun 28 2013"此外,您可以使用两个参数调用方法
toLocaleDateString
:关于MSDN的文章 . 有关MDN上此方法的更多信息 .
这每次都有效:
如果你正在使用jQuery . 尝试这一个班轮:
以下是格式化日期的约定
d - 月中的某一天(没有前导零)
dd - 月中的某一天(两位数)
o - 一年中的一天(没有前导零)
oo - 一年中的一天(三位数)
D - 天名短
DD - 天名长
m - 一年中的月份(无前导零)
mm - 一年中的一个月(两位数)
M - 月名短
MM - 月份名称长
年 - (两位数)
yy - 年(四位数)
这是jQuery datepicker的参考
试试这个:
结果就像
结果:
如果您正在寻找对日期格式的更精细控制,我建议您查看momentjs . 很棒的图书馆 - 只有5KB . http://momentjs.com/
如果你想为最终用户提供简单漂亮的东西......
Also, fixed a small suffix issue in the first version below. Now properly returns suffix.
此更新有两种口味,但仍然相对较小,但不如我上面的原始答案那么小 . 如果你想要非常小,那就去吧 .
另请注意:这仍然比moment.js更少臃肿 . 虽然moment.js很好,但是它有许多世俗的方法,这需要学习时刻,好像它是一种语言 . 我这里使用与PHP:date相同的通用格式 .
快速链接
Date.format.min.js 5.08 KB
dateFormat.min.js 4.16 KB
在这个mod中,格式字符的灵感来自PHP:date . 有关完整列表,请参阅我的README
此mod还有更长的预制格式列表 . 要使用预制格式,只需输入其密钥名称即可 .
dateFormat(new Date(), 'pretty-a');
'compound'
'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' == 'Y-m-d h:i:s'
'postgreSQL' == 'Y.z'
'postgreSQL2' == 'Yz'
'soap' == 'Y-m-d\TH:i:s.u'
'soap2' == 'Y-m-d\TH:i:s.uP'
'unixTimestamp' == '@U'
'xmlrpc' == 'Ymd\TG:i:s'
'xmlrpcCompact' == 'Ymd\tGis'
'wddx' == 'Y-n-j\TG:i:s'
'constants'
'AMERICAN' == 'F j Y'
'AMERICANSHORT' == 'm/d/Y'
'AMERICANSHORTWTIME' == 'm/d/Y h:i:sA'
'ATOM' == 'Y-m-d\TH:i:sP'
'COOKIE' == 'l d-M-Y H:i:s T'
'EUROPEAN' == 'j F Y'
'EUROPEANSHORT' == 'd.m.Y'
'EUROPEANSHORTWTIME' == 'd.m.Y H:i:s'
'ISO8601' == 'Y-m-d\TH:i:sO'
'LEGAL' == 'j F Y'
'RFC822' == 'D d M y H:i:s O'
'RFC850' == 'l d-M-y H:i:s T'
'RFC1036' == 'D d M y H:i:s O'
'RFC1123' == 'D d M Y H:i:s O'
'RFC2822' == 'D d M Y H:i:s O'
'RFC3339' == 'Y-m-d\TH:i:sP'
'RSS' == 'D d M Y H:i:s O'
'W3C' == 'Y-m-d\TH:i:sP'
'pretty'
'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
\
来转义字符 .更清洁,更简单的版本:
结果 varies 根据用户的 locale :