【问题标题】:Javascript Date Object from string in form 'HH-MM'来自'HH-MM'形式的字符串的Javascript日期对象
【发布时间】:2010-12-02 08:04:45
【问题描述】:

嘿,只是想知道如何将 HH:MM 字符串转换为 javascript Date 对象。我尝试过new Date(string);myDate.setTime(),但无济于事。

一个附带问题可能是:如何将 HH:MM 中的字符串转换为自 1970 年 1 月 1 日起的毫秒数。

提前感谢您的帮助。

【问题讨论】:

    标签: javascript date time


    【解决方案1】:

    比如:

    //using timestr '10:33:21', could also be '10-33-21'
    var dat = new Date, time = timestr.split(/\:|\-/g);
    dat.setHours(time[0]);
    dat.setMinutes(time[1]);
    

    【讨论】:

    • 在我看来,这太“手动”了。有一些解析方法可以完成这项工作。
    • 与往常一样 [在 javascript 中],通往罗马的道路有很多。这是其中之一。我认为在切换到更抽象的框架或库之前了解一个人在做什么是很有用的。我想这是一个品味问题。
    • 上午/下午呢?
    【解决方案2】:

    在 JavaScript 中,我使用的是 datejs 库。 http://www.datejs.com/ 如果你包含这个库,你有一个名为“parseExact”的函数,你可以像这样使用它:

    var dateString = "10-12";
    var date = new Date.parseExact(dateString, "hh-mm");
    

    要获取毫秒,您可以从http://code.google.com/p/datejs/source/browse/trunk/#trunk/src 下载文件 time.js。然后你就有了一个可以使用的函数 getTotalMilliseconds():

    var mSeconds = date.getTotalMilliseconds();
    

    我希望这会有所帮助。

    【讨论】:

    • 您好,感谢您的快速回复。抱歉,我还不能投票给你(达到限制),但我现在意识到我的问题是错误的,我的意思是HH:MM。如果您的答案仍然适用,那我很高兴。
    • 此函数解析任何日期时间字符串。在此处查看一些示例:datejs.com/test/parseExact/index.html。这个函数也解析 Date.parseExact(dateString, "HH-MM")。在我的选择中,使用解析器方法而不是手动操作更安全、更优雅。
    • P.S.这对很有帮助。感谢您提供非常全面的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2012-12-04
    相关资源
    最近更新 更多