日期格式被错误地解释

时间:2016-09-01 09:23:17

标签: javascript html xml xslt

我在XML文件中有一个日期,正在传递到我的网页。我正在使用<body onload&gt;调用一个JavaScript函数,然后填充表单上的日期输入字段。我的日期是1950-07-26,格式为yyyy-MM-dd,但我收到错误The specified value "1917" does not conform to the required format, "yyyy-MM-dd".

1917年从哪里开始?

我的XML是:

<VFILE_DATA>
   <CASE>
      <TF15>
         1950-07-26
      </TF15>
   </CASE>
</VFILE_DATA>

HTML/JavaScript的片段是:

    <body onload="load();">
        <script>
        function load()
        {
            window.alert("<xsl:value-of select="VFILE_DATA/CASE/TF15"/>");
            var dateTF15 = <xsl:value-of select="VFILE_DATA/CASE/TF15"/>;
            document.getElementById('field@code_TF15').value=dateTF15;      

        }
        </script>
        <div class="field f_25" id="field26-container">
           <label for="field@code_TF15">
              Client 1 DOB 
            </label>
            <input name="field@code_TF15" id="field@code_TF15" required="required" type="date"/>                        

        </div>
    </body>

我的提醒显示1950-07-26,这是在Google Chrome中。不知道我哪里出错了!

我看过:

Date is interpreted as being in a different format

Date incorrectly interpreted in my string

但都没有帮助。

如果我直接将输入字段的value分配到同一日期,它就可以正常工作。

1 个答案:

答案 0 :(得分:1)

你需要通过

使dateTF15成为一个字符串
var dateTF15 = '<xsl:value-of select="VFILE_DATA/CASE/TF15"/>';
               ^                                             ^

否则,结果代码看起来像

var dateTF15 = 1950-07-26;

这是1917年

带引号的

,结果代码是

var dateTF15 = '1950-07-26';