首页 > 解决方案 > Javascript:Firefox 中显示的日期无效

问题描述

我从 Rails 服务器获取元数据,我想在 angularjs 端显示属性图像 date_time_original :

rails 序列化程序返回元数据:

 module Api::V1::Angular
    class MediumSerializer < BaseSerializer
      attributes :src, :mediumable_type, :mediumable_id, :comment, :is_archived, :order, :metadata

这里是js方法:

getDateTimeOriginal: =>
      if @metadata? and @metadata.date_time_original?
        dateTime = new Date(@metadata.date_time_original)
        moment(dateTime).format('DD/MM/YYYY HH:MM')

火腿面:

.col-md-6.thumbnail{ ng_repeat: "img in fragment.media() | notArchived | orderBy:'order'" }
           %img.pointer{ ng_src: "{{ img.contentUrl() }}", ng_click:'openCarouselModal(img)' }
           %p {{ img.comment }}
           %p.photo-date
            {{ img.getDateTimeOriginal() }}

在 google chrome 中它可以完美运行,但在 Firefox 中却没有!

标签: ruby-on-railsangularjsdatefirefoxmomentjs

解决方案


dateTime您可以通过指定当前日期格式简单地解决此问题。

前任:moment(dateTime, 'YYYY-MM-DD HH:mm:ss Z').format('DD/MM/YYYY HH:MM')

而如果你知道格式@metadata.date_time_original就不需要使用new Date(). 只需要指定当前日期格式@metadata.date_time_original

前任:moment(@metadata.date_time_original, 'YYYY-MM-DD HH:mm:ss Z').format('DD/MM/YYYY HH:MM')


推荐阅读