获取 HTML5 datetime-local 精确值

Get HTML5 datetime-local exact value

尝试使用它,http://jsfiddle.net/mdg2u4ut你会发现时间会与你设置的不同,就像我的情况一样

我认为这是因为时区问题。

在我的例子中,我可以将 hour 变量硬编码为 -8,但这不是明智的做法。

    <input type="datetime-local" onblur="formatDate(this.value)" />
<p id="para"></p>

我的 JS

    function formatDate(date) {
    if(date){

        date = new Date(date);

  var hours = date.getHours();
  var minutes = date.getMinutes();
  var format = hours < 12 ? 'AM' : 'PM';
  hours = hours % 12;
  hours = hours ? hours : 12; // making 0 a 12
  minutes = minutes < 10 ? '0'+minutes : minutes;
  var time = hours + ':' + minutes + ' ' + format;
  var output = date.getMonth()+1 + "/" + date.getDate() + "/" + date.getFullYear() + " " + time;

  document.querySelector('#para').innerHTML = output;
}
    }

改用getUTC方法。 jsFiddle

  var hours = date.getUTCHours();
  var minutes = date.getUTCMinutes();
  var format = hours < 12 ? 'AM' : 'PM';
  hours = hours % 12;
  hours = hours ? hours : 12; // making 0 a 12
  minutes = minutes < 10 ? '0'+minutes : minutes;
  var time = hours + ':' + minutes + ' ' + format;
  var output = date.getUTCMonth()+1 + "/" + date.getUTCDate() + "/" + date.getUTCFullYear() + " " + time;