在Chrome的最后几个主要版本中,您可以显示日期输入字段,其值的格式符合用户的区域设置,如下所示:
<input type="date" value="2012-11-20">
在Mac OS X上,将美国设置为我的区域(使用默认日期格式),Chrome会向我显示:
有没有办法在JavaScript中访问显示的字符串? (This answer将其称为演示文稿格式。)input.value
和input.valueAsDate.toLocaleDateString()
等属性和方法以各种格式给出了相同的日期,但没有一个非常符合演示文稿格式。
这是我的一些尝试的小提琴:http://jsfiddle.net/peterjmag/7KSbA/2/。使用我的Mac上的Chrome 23,它为我提供了以下输出:
[11/20/12]
input.value
2012-11-20
input.valueAsDate
Mon Nov 19 2012 17:00:00 GMT-0700 (MST)
input.valueAsDate.toDateString()
Mon Nov 19 2012
input.valueAsDate.toLocaleDateString()
Monday, November 19, 2012
input.valueAsDate.toISOString()
2012-11-20T00:00:00.000Z
编辑:Here's a similar question让我认为这是不可能的(没有定义重新格式化字符串的方法,就是这样)。
答案 0 :(得分:2)
没有办法直接获取文本,因为显示日期完全由浏览器处理(为了进一步说明问题,请尝试使用Inspect Element查找您在Chrome或Firefox上寻找的字符串 - 您赢了'能够)。
但是,由于每个浏览器每次都会以相同的格式显示日期,因此 可以让脚本检测浏览器并以与浏览器本身相同的方式格式化日期。那是最好的选择,我担心。
答案 1 :(得分:1)
input.select();
var displayString = window.getSelection().toString();
这适用于Chrome 23.但我不认为它适用于Chrome 24。