【问题标题】:Setting time input to datetime from database从数据库将时间输入设置为日期时间
【发布时间】:2016-10-13 00:28:28
【问题描述】:

我目前正在通过 API 从数据库中检索数据。数据以这种格式返回:

2016-10-12T08:00:00

我想在我当前网页的时间输入字段中显示时间部分,其中包含 AM 和 PM。

我有以下输入:

<input type="time" name="StartTime" class="form-control" />

当对 api 的 ajax 调用成功完成时,我会执行以下操作:

$("#group-management #EditGroupModal [name=StartTime]").val(data.startTime);

data.StartTime 当然是上面看到的日期时间文本字符串。

目前没有设置页面输入时间的值。我猜这是因为存在一些格式问题。我想解析上面看到的文本字符串并将其放入前端的表单字段中,但我不确定如何去做。我试过玩 Date 对象,但没有运气。

【问题讨论】:

  • 那个时间是你当地的时间还是UTC?

标签: javascript jquery html datetime


【解决方案1】:

time 输入仅接受时间作为有效值,如 08:00:00

你可以拆分你的字符串,并弹出时间

var data = {startTime : "2016-10-12T08:00:00"}

var time = data.startTime.split('T').pop();

$("[name=StartTime]").val(time);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="time" name="StartTime" class="form-control" />

【讨论】:

  • 但是上午/下午呢?
  • @Feathercrown - 怎么样,OP 的字符串只有 08:00:00
  • 好吧,我想这个字符串可能会根据服务器发回的内容而改变;如果是在 12:59:59 之后,则必须切换到 PM。
  • 为什么,它是一个 ISO 字符串,一直到 24,不是每个人都使用 AM/PM,time 输入也不接受 AM/PM
  • 来自问题:“我想在当前网页上的时间输入字段中显示此时间部分,其中包含上午和下午。”
【解决方案2】:

使用http://momentjs.com/

$(()=>{
  
 $('#StartTime').val(moment('2016-10-12T08:00:00').format('HH:mm:ss'));
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://momentjs.com/downloads/moment.js"></script>

<input type="time" name="StartTime" id='StartTime' class="form-control" />

【讨论】:

    【解决方案3】:

    可能是这样的?:

    var date = new Date('2016-10-12T08:00:00'); // replace the hardcoded time with your return value from Ajax call
    $("#group-management #EditGroupModal [name=StartTime]").val(date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds());
    

    【讨论】:

    • date.getHours() 不起作用,因为它是一个返回的字符串。不过,您可以使用该字符串创建一个新的日期对象。
    • 那下午呢?
    • 这将在 Chrum 中产生与 Firefox 和 Edge 完全不同的时间
    • @JaromandaX - 可能对 Firefox 无关紧要,因为它不支持 time 输入
    猜你喜欢
    • 2021-11-04
    • 2018-07-31
    • 1970-01-01
    • 2019-10-06
    • 2017-12-31
    • 1970-01-01
    • 2021-07-23
    相关资源
    最近更新 更多