如何将 Moment.js 与 ui.grid 一起使用
How to use Moment.js with ui.grid
我正在尝试将 Angularjs UI 网格上呈现的所有日期转换为倒计时。日期都采用这种格式 01/19/2018 21:30(简称美国),相反我希望它还剩 xx 小时 xx 分钟。
我一直在尝试使用 JavaScript 和自定义单元格 类,但无法正常工作。我以前从未与 moment.js 合作过,但它似乎可以解决我的问题,关于如何在 ui.grid?
中 运行 的任何想法
这就是我在 columnDefs
中的内容
{ field: 'DueDate', cellFilter: 'date:"short"'}
编辑:
根据下面的答案,我试图在日期来自 hhtpget 时立即更改日期,并用倒计时替换它们
$http.get("xxx/json").then(function(response) { response.data.forEach( function(row, index) { row.MakerDueDate = moment("row.MakerDueDate").countdown().toString(); }); $scope.gridOptions.data = response.data; });
不幸的是这个returns:
TypeError: moment(...).countdown is not a function
我在 html
中加入了 moment.js、countdown.js 和 moment-countdown.min.js
已更新:
moment().countdown(new Date('01/19/2018 21:30'), countdown.HOURS|countdown.MINUTES, NaN, 2).toString();
输出
"168 hours and 29.34 minutes"
我 运行 来自控制台的代码...
我包括所有 3 个 js
<script src="moment.min.js"></script>
<script src="countdown.min.js"></script>
<script src="moment-countdown.min.js"></script>
也许你可以试试这个moment-countdown
示例:
moment("1982-05-25").countdown().toString(); //=> '30 years, 10 months, 14 days, 1 hour, 8 minutes, and 14 seconds'
//accepts a moment, JS Date, ISO-8601 string, or any other single arg taken my Moment's constructor
moment("1955-08-21").countdown("1982-05-25").toString(); //=> '26 years, 9 months, and 4 days'
moment().countdown("1982-05-25", countdown.MONTHS|countdown.WEEKS, NaN, 2).toString(); //=> '370 months, and 2.01 weeks'
//also works with the args flipped, like diff()
moment("1982-05-25").countdown("1955-08-21").toString(); //=> '26 years, 9 months, and 4 days'
要使用 moment js 仅显示 xx 小时 xx 分钟,语法为:
const formattedDate = moment(date).format('hh:mm');
您可以先准备日期源数组,然后分配给您的ui网格
我正在尝试将 Angularjs UI 网格上呈现的所有日期转换为倒计时。日期都采用这种格式 01/19/2018 21:30(简称美国),相反我希望它还剩 xx 小时 xx 分钟。
我一直在尝试使用 JavaScript 和自定义单元格 类,但无法正常工作。我以前从未与 moment.js 合作过,但它似乎可以解决我的问题,关于如何在 ui.grid?
中 运行 的任何想法
这就是我在 columnDefs
{ field: 'DueDate', cellFilter: 'date:"short"'}
编辑: 根据下面的答案,我试图在日期来自 hhtpget 时立即更改日期,并用倒计时替换它们
$http.get("xxx/json").then(function(response) { response.data.forEach( function(row, index) { row.MakerDueDate = moment("row.MakerDueDate").countdown().toString(); }); $scope.gridOptions.data = response.data; });
不幸的是这个returns:
TypeError: moment(...).countdown is not a function
我在 html
中加入了 moment.js、countdown.js 和 moment-countdown.min.js已更新:
moment().countdown(new Date('01/19/2018 21:30'), countdown.HOURS|countdown.MINUTES, NaN, 2).toString();
输出
"168 hours and 29.34 minutes"
我 运行 来自控制台的代码... 我包括所有 3 个 js
<script src="moment.min.js"></script>
<script src="countdown.min.js"></script>
<script src="moment-countdown.min.js"></script>
也许你可以试试这个moment-countdown 示例:
moment("1982-05-25").countdown().toString(); //=> '30 years, 10 months, 14 days, 1 hour, 8 minutes, and 14 seconds'
//accepts a moment, JS Date, ISO-8601 string, or any other single arg taken my Moment's constructor
moment("1955-08-21").countdown("1982-05-25").toString(); //=> '26 years, 9 months, and 4 days'
moment().countdown("1982-05-25", countdown.MONTHS|countdown.WEEKS, NaN, 2).toString(); //=> '370 months, and 2.01 weeks'
//also works with the args flipped, like diff()
moment("1982-05-25").countdown("1955-08-21").toString(); //=> '26 years, 9 months, and 4 days'
要使用 moment js 仅显示 xx 小时 xx 分钟,语法为:
const formattedDate = moment(date).format('hh:mm');
您可以先准备日期源数组,然后分配给您的ui网格