【问题标题】:extract time from datetime using javascript使用javascript从日期时间中提取时间
【发布时间】:2022-03-31 00:58:23
【问题描述】:

如何从日期时间格式中提取时间。

我的日期时间格式如下。

var datetime =2000-01-01 01:00:00 UTC;

我只想将01.00 的时间设为01

【问题讨论】:

标签: javascript


【解决方案1】:

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

Date.prototype.toLocaleTimeString() 根据系统设置返回一个字符串,该字符串具有该日期时间部分的位置敏感表示。

var time = datetime.toLocaleTimeString();

更新:

新的语言环境和选项参数让应用程序指定 应使用其格式约定的语言并自定义 函数的行为。在较旧的实现中,忽略 语言环境和选项参数,使用的语言环境和形式 返回的字符串完全依赖于实现。

// Depending on timezone, your results will vary
var event = new Date('August 19, 1975 23:15:30 GMT+00:00');

console.log(event.toLocaleTimeString('en-US'));
// expected output: 1:15:30 AM

console.log(event.toLocaleTimeString('it-IT'));
// expected output: 01:15:30

【讨论】:

    【解决方案2】:

    这些方法怎么样

    new Date().getHours()

    new Date().getMinutes()

    例如:

     var d = new Date();
     var n = d.getHours();
    

    已编辑

    根据世界时返回小时:

    new Date().getUTCHours()

    例子:

    var d = new Date();
    var n = d.getUTCHours(); 
    

    【讨论】:

    • 但这将返回本地时间,OP 似乎想要从他的 UTC 日期开始的 UTC 时间
    • var time = datetime.toLocaleTimeString();
    【解决方案3】:

    如果您想从字符串中获取时间,作为替代方法 -

    var datetime ="2000-01-01 01:00:00 UTC";
    var myTime = datetime.substr(11, 2);
    alert(myTime) //01
    

    【讨论】:

      【解决方案4】:

      使用moment.js 库,它以这种方式工作:

      var result = moment().format('hh');
      alert(result);
      <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

      【讨论】:

        【解决方案5】:
        var datetime = ("2000-01-01 01:00:00 UTC");
        var d1 = new Date(datetime);
        var minute = d1.getUTCMinutes();
        var hour = d1.getUTCHours();
        if(minute > 0)  
             alert(hour+"."+minute);
        else
             alert(hour);
        

        Demo

        【讨论】:

          【解决方案6】:
          var date1 = new Date(1945,10,20, 17,30)
          var date2 = new Date(1970,1,8, 12,00)
          
          console.log(date1.getHours() - 8 + (date1.getMinutes()/60))
          
          console.log(date2.getHours() - 8 + (date2.getMinutes()/60))
          

          【讨论】:

            【解决方案7】:

            使用以下代码:

            var datetime = "2000-01-01 01:00:00 UTC";
            
            var dt = new Date(datetime);
            var hr = dt.getUTCHours();
            if(hr > 12) {
               hr -= 12;
            }
            alert(hr);
            

            refer this link also.

            【讨论】:

            • 不起作用,它会提醒我2(在 GMT+0100 中)- OP 想要得到 1
            【解决方案8】:

            假设你有一个Date object 喜欢

            var datetime = new Date("2000-01-01 01:00:00 UTC"); // might not parse correctly in every engine
            // or
            var datetime = new Date(Date.UTC(2000, 0, 1, 1, 0, 0));
            

            然后使用getUTCHours method:

            datetime.getUTCHours(); // 1
            

            【讨论】:

              【解决方案9】:

              我做到了!它看起来像这样:

              console.log(new Date().toLocaleTimeString() + " " + new Date().getSeconds() + " seconds");
              

              【讨论】:

                【解决方案10】:

                希望你能在这里找到解决办法。

                let preDateTime = new Date("2022-03-31 22:26:00");
                let newTime = preDateTime.toLocaleTimeString('en-US');
                let hour = newTime.split(":")[0];
                let amPm = newTime.split(" ")[1];
                let seconds = newTime.split(":")[2].replace(amPm,'');;
                
                let noAmPm = newTime.replace(amPm,'');
                let noAmPmSeconds = noAmPm.replace(":"+seconds,'');
                let noSeconds = newTime.replace(":"+seconds,' ');
                
                if(parseInt(hour)<9){
                    newTime = "0"+newTime;
                    noAmPm = "0"+noAmPm
                    noSeconds= "0"+noSeconds
                    noAmPmSeconds = "0"+noAmPmSeconds;
                }
                
                console.log(newTime); //10:26:00 PM
                console.log(noAmPm); //10:26:00 
                console.log(noSeconds); //10:26 PM
                console.log(noAmPmSeconds); //10:26

                【讨论】:

                  猜你喜欢
                  • 2012-04-09
                  • 1970-01-01
                  • 2019-05-08
                  • 1970-01-01
                  • 2014-11-20
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-02-01
                  相关资源
                  最近更新 更多