我注意到JavaScript的new Date()
功能在接受多种格式的日期时非常聪明.
Xmas95 = new Date("25 Dec, 1995 23:15:00")
Xmas95 = new Date("2009 06 12,12:52:39")
Xmas95 = new Date("20 09 2006,12:52:39")
Run Code Online (Sandbox Code Playgroud)
在调用new Date()
函数时,我无法在任何地方找到显示所有有效字符串格式的文档.
这用于将字符串转换为日期.如果我们看一下相反的方面,即将日期对象转换为字符串,直到现在我的印象是JavaScript没有内置的API来将日期对象格式化为字符串.
编者注:以下方法是提问者的企图,关于特定浏览器的工作,但也不会在一般的工作; 请参阅此页面上的答案以查看一些实际解决方案.
今天,我在toString()
日期对象上使用了该方法,并且令人惊讶的是它用于将日期格式化为字符串.
var d1 = new Date();
d1.toString('yyyy-MM-dd'); //Returns "2009-06-29" in Internet Explorer, but not Firefox or Chrome
d1.toString('dddd, MMMM ,yyyy') //Returns "Monday, June 29,2009" in Internet Explorer, but not Firefox or Chrome
Run Code Online (Sandbox Code Playgroud)
在这里,我找不到任何关于我们可以将日期对象格式化为字符串的方法的文档.
列出Date()
对象支持的格式说明符的文档在哪里?
我想告诉JS中有效和无效日期对象之间的区别,但无法弄清楚如何:
var d = new Date("foo");
console.log(d.toString()); // shows 'Invalid Date'
console.log(typeof d); // shows 'object'
console.log(d instanceof Date); // shows 'true'
Run Code Online (Sandbox Code Playgroud)
编写isValidDate
函数的任何想法?
Date.parse
用于解析日期字符串,它提供了一种检查日期字符串是否有效的权威方法.Date
实例,这最容易验证.Date
实例,然后测试它Date
的时间值.如果日期无效,则时间值为NaN
.我用ECMA-262检查了这个行为是标准的,这正是我正在寻找的.如何在JavaScript中将字符串转换为日期?
var st = "date in some format"
var dt = new date();
var dt_st= //st in date format same as dt
Run Code Online (Sandbox Code Playgroud) new Date(Date.parse("Jul 8, 2005"));
Run Code Online (Sandbox Code Playgroud)
2005年7月8日星期五00:00:00 GMT-0700(太平洋标准时间)
new Date(Date.parse("2005-07-08"));
Run Code Online (Sandbox Code Playgroud)
2005年7月7日星期五17:00:00 GMT-0700(太平洋标准时间)
为什么第二个解析不正确?
大家好我有一个日期格式太阳5月11,2014我怎么能在javascript中将它转换为2014-05-11.
function taskDate(dateMilli) {
var d = (new Date(dateMilli) + '').split(' ');
d[2] = d[2] + ',';
return [d[0], d[1], d[2], d[3]].join(' ');
}
var datemilli = Date.parse('Sun May 11,2014');
taskdate(datemilli);
Run Code Online (Sandbox Code Playgroud)
上面的代码给了我相同的日期格式太阳可能11,2014请帮忙
alert(new Date('2010-11-29'));
Run Code Online (Sandbox Code Playgroud)
chrome,ff对此没有问题,但是safari会喊"无效日期".为什么?
编辑:好的,根据下面的评论,我使用字符串解析并试过这个:
alert(new Date('11-29-2010')); //doesn't work in safari
alert(new Date('29-11-2010')); //doesn't work in safari
alert(new Date('2010-29-11')); //doesn't work in safari
Run Code Online (Sandbox Code Playgroud)
编辑2018年3月22日:似乎人们仍然在这里着陆 - 今天,我会使用moment
或date-fns
完成它.Date-fns非常轻松无忧.
我正在创建一个应用程序,它允许您使用时间范围定义事件.我想在用户选择或更改开始日期时自动填写结束日期.但是,我无法弄清楚如何在两次之间找到差异,然后如何使用这种差异创建一个新的结束日期.
我正在创建一个如下所示的日期时间字符串: 2010-07-15 11:54:21
使用以下代码我在Firefox中获得无效日期,但在Chrome中运行良好
var todayDateTime = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + seconds;
var date1 = new Date(todayDateTime);
Run Code Online (Sandbox Code Playgroud)
在firefox中,date1给了我一个无效的日期,但在chrome中它的工作正常,主要原因是什么?
在Chrome,FF和IE上运行这个jsfiddle:http://jsfiddle.net/E9gq9/7/,你会得到:
铬:
Chrome http://images.devs-on.net/Image/vBTz86J0f4o8zlL3-Region.png
火狐:
Firefox http://images.devs-on.net/Image/aNPxNPUpltyjVpSX-Region.png
IE:
IE http://images.devs-on.net/Image/WXLM5Ev1Viq4ecFq-Region.png
苹果浏览器:
Safari http://images.devs-on.net/Image/AEcyUouX04k2yIPo-Region.png
ISO 8601似乎没有说明如何解释没有尾随Z的字符串.
我们的服务器(ASP.NET MVC4)将UTC时间从数据库中拉出来,DateTime
并简单地将它们填入JSON中.正如您所看到的,我们在浏览器上得到了不一致的结果.
我们应该在服务器端向他们添加Z吗?
new Date().toLocaleDateString('en-US'); // "?8?/?17?/?2018"
new Date("8/17/2018") //valid date
new Date(new Date().toLocaleDateString('en-US')) // Invalid Date
我试图创造date
,local date
string (see screenshot)
但它没有工作IE11 only
.它可以正常使用date string
.
我知道有问题"" double quotes
但却无法使其正常工作.
有什么建议吗?
javascript ×10
date ×9
datetime ×3
date-format ×2
time-format ×2
asp.net ×1
firefox ×1
formatting ×1
safari ×1
utc ×1