如何从本地时间获取小时?

时间:2019-03-27 14:20:11

标签: javascript jquery html

我试图以不同的方式从datetime-local输入中获取小时,但是每次我得到的输出都是“无效”日期。

所以我想知道如何使用jquery或js从datetime-local输入中获取小时数。

这是我尝试过的:

var fine =  moment($('#datafine').val).format("HH");

没什么事,就像

var datafine = new Date($('#datafine').val);

2 个答案:

答案 0 :(得分:1)

从输入中获取值时,无论显示的格式如何,它都会转换为标准格式:

  

要注意的一件事是显示的日期和时间格式与实际值不同;显示的日期和时间将根据其操作系统报告的用户区域设置进行格式化,而日期/时间值则始终采用yyyy-MM-ddThh:mm进行格式化。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local

因此,您可以将其与new Date(val).getHours()一起使用以获取小时数。

使用jQuery:

var hour = new Date($('input[type="datetime-local"]').val()).getHours()
console.log($('input[type="datetime-local"]').val(), hour)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label for="party">Enter a date and time for your party booking:</label>
<input id="party" type="datetime-local" name="partydate" value="2019-06-01T19:30">

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getHours

答案 1 :(得分:1)

如果我正确理解您要执行的操作,则可能会有所帮助。您只需要将输入的日期值添加到新的Date()中即可。下面的代码将为您提供指定语言环境中的时间。

const date = new Date();
const options = { hour12: false, hour: 'numeric'};
const hours = date.toLocaleTimeString('en-US', options); 

console.log(hours)

Date.prototype.toLocaleTimeString() on MDN