angular moment

其他类别 2025-08-23

角矩

AngularJS指令和过滤器瞬间。

版权(c)2013,2014,2014,2015,2016,2017,2018 uri shaked uri@urish.org

现在可用新的Angular版本:NGX-Moment


安装

您可以选择首选的安装方法:

  • 通过鲍尔: bower install angular-moment --save
  • 通过NPM: npm install angular-moment moment --save
  • 通过nuget: Install-Package angular-moment Moment.js
  • 来自CDN:JSDELIVR或CDNJS
  • 从GitHub下载:Angular-moment.min.js

使用webpack使用时机区的说明

即使您的package.json中有moment-timezone angular-moment

 var angular = require ( 'angular' ) ;
require ( 'angular-moment' ) ;
var ngModule = angular . module ( 'ngApp' , [ 'angularMoment' ] ) ;
ngModule . constant ( 'moment' , require ( 'moment-timezone' ) ) ; 

用法

在您的应用程序中包括Moment.jsAngular-Moment.js

">
 < script src =" components/moment/moment.js " >  script >
< script src =" components/angular-moment/angular-moment.js " >  script >

添加模块angularMoment作为您应用模块的依赖性:

 var myapp = angular . module ( 'myapp' , [ 'angularMoment' ] ) ;

如果您需要国际化支持,请加载指定时刻。

">
 < script src =" components/moment/moment.js " >  script >
< script src =" components/moment/locale/de.js " >  script >
< script src =" components/angular-moment/angular-moment.js " >  script >

然后调用amMoment.changeLocale()方法(例如,在应用程序的运行()回调中):

 myapp . run ( function ( amMoment ) {
	amMoment . changeLocale ( 'de' ) ;
} ) ;

在控制器/服务/工厂中使用

moment注入您的依赖注入中。例如:

 angular . module ( 'fooApp' )
    . controller ( 'FooCtrl' , [ '$scope' , 'moment' , function ( $scope , moment ) {
        $scope . exampleDate = moment ( ) . hour ( 8 ) . minute ( 0 ) . second ( 0 ) . toDate ( ) ;
    } ] ) ;

Am time-ago指令

使用am-time-ago指令格式化您的相对时间戳。例如:

">
 < span am-time-ago =" message.time " >  span >

Angular-Moment将动态更新跨度,以指示自消息创建以来的时间。因此,如果您的控制器包含以下代码:

 $scope . message = {
   text : 'hello world!' ,
   time : new Date ( )
} ;

用户最初将看到“几秒钟前”,并且跨度大约一分钟将自动使用文本“一分钟前”进行更新,等等。

Amparse滤镜

将定制格式的日期解析为可以与am-time-ago指令和其他过滤器一起使用的矩对象。例如,以下代码将接受格式的日期,例如“ 2015.04.25 22:00:15':

">
 < span am-time-ago =" message.time | amParse:'YYYY.MM.DD HH:mm:ss' " >  span >

Amfromunix过滤器

将Unix-Timestamp(自1970年1月1日以来的秒)转换为矩对象。例子:

">
 < span am-time-ago =" message.unixTime | amFromUnix " >

AMUTC过滤器

创建 /将当前力矩对象切换到UTC模式。例如,给定一个message.date中的日期对象。date,以下代码将显示UTC中的时间,而不是本地时区:

 < span > {{message.date | amUtc | amDateFormat:'MM.DD.YYYY HH:mm:ss'}}  span >

AmutCoffset过滤器

显示日期时使用给定的UTC偏移量。例如,以下代码将以UTC + 3小时的时间偏移显示日期:

 < span > {{message.date | amUtcOffset:'+0300' | amDateFormat:'MM.DD.YYYY HH:mm:ss'}}  span >

芳田过滤器

将给定的矩对象更改为本地时区。通常与amUtc / amTimezone一起用于时区转换。例如,以下将将给定UTC日期转换为本地时间:

 < span > {{message.date | amUtc | amLocal | amDateFormat:'MM.DD.YYYY HH:mm:ss'}}  span >

Amtimezone滤波器

将时区应用于给定的日期 /力矩对象。您需要在项目中包含moment-timezone.js ,并加载时区数据以使用此过滤器。以下示例显示了以色列时区的时间:

 < span > {{message.date | amTimezone:'Israel' | amDateFormat:'MM.DD.YYYY HH:mm:ss'}}  span >

AmdateFormat过滤器

格式使用Moment.JS格式()方法的格式日期。例子:

 < span > {{message.time | amDateFormat:'dddd, MMMM Do YYYY, h:mm:ss a'}}  span >

该片段将格式化给定时间为“ 2013年10月7日,星期一,上午12:36:29”。

有关MONM.JS格式选项的更多信息,请参见“格式()函数的文档。

Amcalendar滤波器

使用Moment.js Calendar()方法格式日期。例子:

 < span > {{message.time | amCalendar:referenceTime:formats}}  span >

该片段将以“今天上午2:30”或“上周一2:30 am”等格式化给定时间。

有关MONM.JS日历时间格式的更多信息,请参阅docs in Calendar()函数。

差异过滤器

在毫秒中获得两个日期之间的区别。参数是日期,单位和使用权。日期默认为当前日期。例子:

 < span > Scheduled {{message.createdAt | amDifference : null : 'days' }} days from now  span >

该片段将返回当前日期和过滤日期之间的天数。

有关MONM.JS差异函数的更多信息,请参见DIFF()函数的文档。

AmdurationFormat滤波器

以人类可读格式格式化持续时间(例如5天)。有关支持持续时间格式的列表,请参见Moment.JS文档,并humanize() documentation以说明格式化算法。

例子:

 < span > Message age: {{message.ageInMinutes | amDurationFormat : 'minute' }}  span >

将显示消息的年龄(例如10分钟,1小时,2天等)。

Amsubtract过滤器

从指定的日期减去值(小时,分钟,秒...)。

有关支持的持续时间格式列表,请参见Moment.JS文档。

例子:

 < span > Start time: {{day.start | amSubtract : '1' : 'hours' | amDateFormat : 'hh'}} : {{day.start | amSubtract : '30' : 'minutes' | amDateFormat : 'mm'}}  span >

AMADD过滤器

将值(小时,分钟,秒...)添加到指定的日期。

有关支持的持续时间格式列表,请参见Moment.JS文档。

例子:

 < span > Start time: {{day.start | amAdd : '1' : 'hours' | amDateFormat : 'hh'}} : {{day.start | amAdd : '30' : 'minutes' | amDateFormat : 'mm'}}  span >

Amstartof过滤器

通过将其设置为时间(分钟,小时,一天)的开始来突变原始时刻。

有关支持的持续时间格式列表,请参见Moment.JS文档。

例子:

 < span > {{ date | amStartOf:'month' | amLocal }}  span >

修正过滤器

通过将其设置在时间的末端(分钟,小时,天..)的末端来突变原始时刻。

有关支持的持续时间格式列表,请参见Moment.JS文档。

例子:

 < span > {{ date | amEndOf:'month' | amLocal }}  span >

时区支持

可以将amDateFormatamCalendar滤波器配置为显示与特定时区对齐的日期。您可以使用以下语法配置时区:

 angular . module ( 'myapp' ) . constant ( 'angularMomentConfig' , {
    timezone : 'Name of Timezone' // e.g. 'Europe/London'
} ) ;

切记在项目中包括moment-timezone.js v0.3.0或更高的内容,否则将无法使用自定义时区功能。您还需要包括一个时区数据文件,您可以使用时区数据构建器创建该文件,或者简单地从此处下载。

在您的JavaScript中访问moment()

如果您希望在服务,控制器或指令中使用moment() ,则只需将moment变量注入构造函数即可。

执照

根据MIT许可证的条款发布。

下载源码

通过命令行克隆项目:

git clone https://github.com/urish/angular-moment.git