1

在 Chrome 的最后几个主要版本中,您可以显示一个日期输入字段,其值格式化为用户的区域设置,如下所示:

<input type="date" value="2012-11-20">

在 Mac OS X 上,将美国设置为我的地区(使用默认日期格式),Chrome 向我显示:

显示日期输入字段

有什么方法可以访问 JavaScript 中显示的字符串?(这个答案将其称为演示格式。)属性和方法喜欢input.valueinput.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

编辑这是一个类似的问题,让我认为这是不可能的(也就是说,没有定义重新格式化字符串的方法)。

4

2 回答 2

2

无法直接获取文本,因为显示日期完全由浏览器处理(为了进一步说明这一点,请尝试使用 Inspect Element 在 Chrome 或 Firefox 上查找您要查找的字符串 - 您将无法到)。

但是,由于每个浏览器每次都会以相同的格式显示日期,因此可以让脚本检测浏览器并以与浏览器本身相同的方式格式化日期。恐怕这将是最好的选择。

于 2012-11-21T02:00:00.503 回答
1
input.select();
var displayString = window.getSelection().toString();

这适用于 Chrome 23。但我认为它不适用于 Chrome 24。

于 2012-11-21T05:05:13.777 回答