如何通过表中的索引将每个col转换为本地时刻? [英] How to convert each col by index in a table to local moment?

查看:150
本文介绍了如何通过表中的索引将每个col转换为本地时刻?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含8列的表。最终列中的每个日期值都需要转换为本地浏览器。目前它显示为UTC:





所以我添加了一些JQuery来循环遍历索引的每一行,使用 .eq(index),它可以作为索引'6'在JQuery。但是,当我测试这个功能时,它只能转换表中最后一行的UpdateTime,而且时间不是本地的,如下所示:





如何将指定列中的每一行转换为本地?



这是JQuery函数我用来循环:

  $(.td-limit)。eq(6).each (){
var updatedTimeISO = moment.utc($(this).data('order'))。toISOString();
var updatedTimeLocal = moment(updatedTimeISO);
$ ).text(updatedTimeLocal);
});

这些是DataTable中最后一列是目标的列需要转换的更新时间

  @foreach(Model中的Models.Escalation项目)
{

< tr>
< td> @ item.ID< / td>
< td> @ item.Application< / td>
< td class =td-limit> @ item.EMAD< / td>
< td class =td-limit> @ item.Event< / td>
< td class =td-limit> @ item.Status< / td>
< td style =font-size:16px; class =td-limit> @ item.Statement< / td>
< td class =td-limit> @ item.Created< / td>
< td class =td-limit> @ item.Update< / td>
< td data-order =@ item.UnixTimeStampclass =td-limit> @ item.UpdatedTime< / td>

< / tr>

}


解决方案

剃刀,所以你不包括更新的时间。

  @foreach(Models.Escalation item in Model)
{

< tr> ;
< td> @ item.ID< / td>
< td> @ item.Application< / td>
< td class =td-limit> @ item.EMAD< / td>
< td class =td-limit> @ item.Event< / td>
< td class =td-limit> @ item.Status< / td>
< td style =font-size:16px; class =td-limit> @ item.Statement< / td>
< td class =td-limit> @ item.Created< / td>
< td class =td-limit> @ item.Update< / td>
< td data-order =@ item.UnixTimeStampclass =td-limit>< / td>

< / tr>

}

然后使用这个jQuery在客户端更新它。



  $(td [data-order]) (){var updatedTimeISO = moment.utc($(this).data('order'))。toISOString(); var updatedTimeLocal = moment(updatedTimeISO); $(this).text(updatedTimeLocal);}); code> 

 < script src =https://cdnjs.cloudflare。 com / ajax / libs / moment.js / 2.14.1 / moment.min.js>< / script>< script src =https://ajax.googleapis.com/ajax/libs/jquery/2.1 .1 / jquery.min.js>< / script>< table border =1> < tr> < td> ID< / td> < td>应用< / td> < td class =td-limit> EMAD< / td> < td class =td-limit>事件< / td> < td class =td-limit> Status< / td> < td style =font-size:16px; class =td-limit> Statement< / td> < td class =td-limit> Created< / td> < td class =td-limit> Update< / td> < td data-order =2013-02-02T21:01:26.0828604Zclass =td-limit>< / td> < / tr> < tr> < td> ID< / td> < td>应用< / td> < td class =td-limit> EMAD< / td> < td class =td-limit>事件< / td> < td class =td-limit> Status< / td> < td style =font-size:16px; class =td-limit> Statement< / td> < td class =td-limit> Created< / td> < td class =td-limit> Update< / td> < td data-order =2013-03-02T21:01:26.0828604Zclass =td-limit>< / td> < / tr> < tr> < td> ID< / td> < td>应用< / td> < td class =td-limit> EMAD< / td> < td class =td-limit>事件< / td> < td class =td-limit> Status< / td> < td style =font-size:16px; class =td-limit> Statement< / td> < td class =td-limit> Created< / td> < td class =td-limit> Update< / td> < td data-order =2013-07-02T21:01:26.0828604Zclass =td-limit>< / td> < / tr>< / table>  


I have a table containing 8 columns. Each date value in the final column needs to be converted to the browser local. At the moment it shows as UTC:

So I added some JQuery to loop through each row at the index using .eq(index) which works out to be index '6' in JQuery. But when I test this function it only converts the last row UpdatedTime in the table and the time is not local as seen below:

How can I convert each row at a specified column to local moment?

This is the JQuery function I use to loop through:

$(".td-limit").eq(6).each(function () {
        var updatedTimeISO = moment.utc($(this).data('order')).toISOString();
        var updatedTimeLocal = moment(updatedTimeISO);
    $(this).text(updatedTimeLocal);
    });

And these are the columns in the DataTable where the final column is the target UpdatedTime that needs to be converted:

                    @foreach (Models.Escalation item in Model)
                    {

                        <tr>
                            <td>@item.ID</td>
                            <td>@item.Application</td>
                            <td class="td-limit">@item.EMAD</td>
                            <td class="td-limit">@item.Event</td>
                            <td class="td-limit">@item.Status</td>
                            <td style="font-size: 16px;" class=" td-limit">@item.Statement</td>
                            <td class="td-limit">@item.Created</td>
                            <td class="td-limit">@item.Update</td>
                            <td data-order="@item.UnixTimeStamp" class="td-limit">@item.UpdatedTime</td>

                        </tr>

                    }

解决方案

Modify your Razor so you don't include the updated time.

 @foreach (Models.Escalation item in Model)
                    {

                        <tr>
                            <td>@item.ID</td>
                            <td>@item.Application</td>
                            <td class="td-limit">@item.EMAD</td>
                            <td class="td-limit">@item.Event</td>
                            <td class="td-limit">@item.Status</td>
                            <td style="font-size: 16px;" class=" td-limit">@item.Statement</td>
                            <td class="td-limit">@item.Created</td>
                            <td class="td-limit">@item.Update</td>
                            <td data-order="@item.UnixTimeStamp" class="td-limit"></td>

                        </tr>

                    }

Then use this jQuery to update it on the client side.

$("td[data-order]").each(function() {
  var updatedTimeISO = moment.utc($(this).data('order')).toISOString();
  var updatedTimeLocal = moment(updatedTimeISO);
  $(this).text(updatedTimeLocal);
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1">
  <tr>
    <td>ID</td>
    <td>Application</td>
    <td class="td-limit">EMAD</td>
    <td class="td-limit">Event</td>
    <td class="td-limit">Status</td>
    <td style="font-size: 16px;" class="td-limit">Statement</td>
    <td class="td-limit">Created</td>
    <td class="td-limit">Update</td>
    <td data-order="2013-02-02T21:01:26.0828604Z" class="td-limit"></td>
  </tr>
  <tr>
    <td>ID</td>
    <td>Application</td>
    <td class="td-limit">EMAD</td>
    <td class="td-limit">Event</td>
    <td class="td-limit">Status</td>
    <td style="font-size: 16px;" class=" td-limit">Statement</td>
    <td class="td-limit">Created</td>
    <td class="td-limit">Update</td>
    <td data-order="2013-03-02T21:01:26.0828604Z" class="td-limit"></td>
  </tr>
  <tr>
    <td>ID</td>
    <td>Application</td>
    <td class="td-limit">EMAD</td>
    <td class="td-limit">Event</td>
    <td class="td-limit">Status</td>
    <td style="font-size: 16px;" class=" td-limit">Statement</td>
    <td class="td-limit">Created</td>
    <td class="td-limit">Update</td>
    <td data-order="2013-07-02T21:01:26.0828604Z" class="td-limit"></td>
  </tr>
</table>

这篇关于如何通过表中的索引将每个col转换为本地时刻?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆