角矩
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.js和Angular-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 >时区支持
可以将amDateFormat和amCalendar滤波器配置为显示与特定时区对齐的日期。您可以使用以下语法配置时区:
angular . module ( 'myapp' ) . constant ( 'angularMomentConfig' , {
timezone : 'Name of Timezone' // e.g. 'Europe/London'
} ) ;切记在项目中包括moment-timezone.js v0.3.0或更高的内容,否则将无法使用自定义时区功能。您还需要包括一个时区数据文件,您可以使用时区数据构建器创建该文件,或者简单地从此处下载。
在您的JavaScript中访问moment()
如果您希望在服务,控制器或指令中使用moment() ,则只需将moment变量注入构造函数即可。
执照
根据MIT许可证的条款发布。
通过命令行克隆项目: