角矩
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许可证的条款发布。
