【问题标题】:How to set Hours,minutes,seconds to Date which is in GMT如何将小时、分钟、秒设置为 GMT 日期
【发布时间】:2014-10-29 02:07:32
【问题描述】:

我有日期对象,我想从我的日期中清除 HOUR、MINUTE 和 SECONDS。请帮助我如何在 Javascript 中执行此操作。我做错了吗?

var date = Date("Fri, 26 Sep 2014 18:30:00 GMT");
      date.setHours(0);
      date.setMinutes(0);
      date.setSeconds(0);

预期结果是

Fri, 26 Sep 2014 00:00:00 GMT

我如何实现?

【问题讨论】:

    标签: javascript date


    【解决方案1】:

    根据MDNsetHours 函数实际上需要额外的可选参数来设置分钟、秒和毫秒。因此我们可以简单地写

    // dateString is for example "Fri, 26 Sep 2014 18:30:00 GMT"
    function getFormattedDate(dateString) {
       var date = new Date(dateString);
       date.setHours(0, 0, 0);   // Set hours, minutes and seconds
       return date.toString();
    }
    

    【讨论】:

    • 你太棒了,最好的答案在这里:)!
    • 设置毫秒,你应该写date.setHours(0, 0, 0, 0):四个零
    • 我喜欢你的解决方案,它比我的更干净
    【解决方案2】:

    你可以用这个:

    // Like Fri, 26 Sep 2014 18:30:00 GMT
    var today = new Date();
    
    var myToday = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0);
    

    使用实际日期使用构造函数重新创建 Date 对象。

    【讨论】:

    • today.getDate(); @Blader 请在回答中更正
    • 我已经使用此代码设置了一个在午夜保存明天日期的对象 - var tomorrow_midnight = new Date(now.getFullYear(), now.getMonth(), now.getDate() + 1, 0, 0, 0);只是想与世界分享这个...... :)
    • 下面回答使用 theDate.setHours(hours, minutes, seconds, milliseconds) 会更好。
    【解决方案3】:

    要将日期解析为 JavaScript,只需使用

    var date = new Date("Fri, 26 Sep 2014 18:30:00 GMT”);
    

    然后使用以下几行将小时、分钟和秒设置为 0

    date.setHours(0);
    date.setMinutes(0);
    date.setSeconds(0);
    

    date.toString() 现在返回您想要的日期

    【讨论】:

    • 那么为什么不这样设置 - var date = new Date("Fri, 26 Sep 2014 00:00:00 GMT"),并保存额外的不需要的代码?...
    • @TheCuBeMan 我认为这是因为您必须进行一些字符串操作。似乎更容易做 date.setHours() 部分,IMO。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    相关资源
    最近更新 更多