【问题标题】:How can I convert a date and time into a time only using angular-moment?如何仅使用角矩将日期和时间转换为时间?
【发布时间】:2017-09-14 04:06:23
【问题描述】:

所以我有这样的日期:

$scope.sample_time = "September 14th 2017, 1:00:00 pm";

在我看来,我只想显示时间,例如 1:00 pm

使用angular-moment,我尝试了{{ sample_time | amParse:'HH:mm a'}} 之类的东西,但我得到了2017-09-14T06:00:00.000Z

我在这里遗漏了什么吗?任何帮助将不胜感激。

【问题讨论】:

    标签: javascript angularjs momentjs angular-moment


    【解决方案1】:

    因为"September 14th 2017, 1:00:00 pm"不是默认的有效日期,所以需要先按照你使用的对应格式('MMMM Do YYYY, h:mm:ss a')进行解析,然后得到一个有效的日期,可以使用amDateFormat来格式化:@ 987654324@

    {{ sample_time | amParse:'MMMM Do YYYY, h:mm:ss a' | amDateFormat: 'H:mm s'}}
    

    一个笨蛋:http://plnkr.co/edit/RocNLPq6uBlFnccLFB8N?p=preview

    【讨论】:

      【解决方案2】:

      我的做法是这样的:

      {{ getLocalDate(sample_time) | date: "hh:mm a"}}
      

      获取本地日期转换当前日期

       $scope.getLocalDate = function (date) {
      
              return new Date(moment.utc(date));
          }
      

      这会输出你想要的时间格式。

      我不确定这是否是最好的方法。我希望这会有所帮助

      【讨论】:

      • 如果您尝试这样做,您将收到“弃用警告:提供的值不是可识别的 RFC2822 或 ISO 格式。”和一个空值。
      • 感谢您指出这一点。我想我需要改变我的实现。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多