javascript - 如何使用 JavaScript 将 DateTime 的 C# 输出转换为 "Days Remaining"?

标签 javascript c# datetime

我在 .net 表单上运行一个应用程序,它显示我们从数据库中提取的 DateTime 输出。它显示为到期日期。

public DateTime DATE_EXPIRES { get; set; }
public String DATE_EXPIRES_STR { get; set; }

        public void FromRow(Hashtable row)
        {
            try
            {
                DATE_EXPIRES = row.ContainsKey("DATE_EXPIRES") && row["DATE_EXPIRES"] != DBNull.Value ? Convert.ToDateTime(row["DATE_EXPIRES"]) : default(DateTime);
                DATE_EXPIRES_STR = DATE_EXPIRES.ToString("MMMM dd, yyyy");
            }
            catch (Exception ex)
            {
                SCORM.Error += ex.Message + "\r\n";
            }
        }

我的目标是不显示过期日期,而是显示“剩余天数”并计算今天与显示日期之间的差异并向用户显示“剩余 55 天”,等等。

我的问题是需要用C#转换显示,还是直接显示日期,让JavaScript看日期,计算剩余时间,然后输出剩余天数,而不是显示实际的到期日期?

目前的样子 enter image description here

我想要的样子 enter image description here

最佳答案

您可以使用 momentjs 来计算剩余天数和每个 tr 来转换这样的值。

您不更新 C# 代码,只在准备转换 Expires 列的文档中添加 javascript 代码。

 $(document).ready(function () {
    $("tr").each(function (index, item) {
      if (index == 0) {
        $(item).find('th').eq(1).text('Days Remaining');
      } else {
        let date = $(item).find('td').eq(1).text();
        var eventdate = moment(date, "MMMM DD, YYYY");
        var todaysdate = moment();
        days = eventdate.diff(todaysdate, 'days');
        $(item).find('td').eq(1).text(days + ' Days Left')
      }
    })
  });
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script>
<!DOCTYPE html>
<html>
<head>
</head>
<body>


<table>
  <tr>
    <th>Title</th>
    <th>Expires</th>
    
  </tr>
  <tr>
    
    <td>Course 1</td>
    <td>June 24, 2019</td>
  </tr>
  <tr>
    
    <td>Course 2</td>
    <td>June 24, 2019</td>
  </tr>
</table>

</body>
</html>

关于javascript - 如何使用 JavaScript 将 DateTime 的 C# 输出转换为 "Days Remaining"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944377/

相关文章:

javascript - jQuery hasClass 返回 true 但removeClass 不起作用?

javascript - ngModel 在 Controller 中更新,但不在 View 中更新, Angular 2

javascript - 如何搜索 JavaScript 对象并更改值

mysql - MySQL 查询中的三个小时时间间隔

javascript - 更新对象之间的共享属性

c# - WebBrowser 控件和 Adob​​e Flash 内容

c# - VB.NET 等效于匿名类型的 C# 对象初始值设定项

c# - 使用 Process.Start 打印文档而不显示 Word

java - 更改时区而不更改Java中的时间

c# - 在 C# 中判断生日是否已经过了 6 个月