gpt4 book ai didi

javascript - 如何在 razor 页面上将 C# Datetime 对象转换为 json 以进行客户端操作

转载 作者:行者123 更新时间:2023-12-02 23:27:58 25 4
gpt4 key购买 nike

我正在尝试将存储的日期时间对象从数据库转换为 razor View 页面上的 Json 对象,以便对其进行操作并实时计算用户列表所用的时间。我不知道该怎么做。请帮忙!

我认为最好在 View 页面上转换它,但我不确定这是否是最好的解决方案

@model List<WebApplication1.Models.Attendance>

<html>
<body>
@foreach (var attendance in Model)
{
<table>
<tr>
<th> Name </th>
<th> Time Elapsed </th>
</tr>

<tr>
<td> @attendance.ApplicationUserId </td>
<td class="DateTimeObject" data-date="@attendance.DateAndTimeIn.ToString("u")"> @attendance.DateAndTimeIn </td>
</tr>
</table>

}


<script type="text/javascript">



var myVar = setInterval(myTimer, 1000);

const seconds = 1000;
const minutes = seconds * 60;
const hours = minutes * 60;
const days = hours * 24;
const years = days * 365;


function myTimer() {

let dateTimeValue = document.getElementsByClassName("DateTimeObject");

for (i = 0; i < dateTimeValue.lenght; i++)

{
const startDateTime = new Date(dateTimeValue[i].dataset.date);
const newDateTime = new Date();

let elapsedMilliseconds = newDateTime - startDateTime;


document.getElementsByClassName("DateTimeObject").innerHTML =
`${formatElapsedTime(elapsedMilliseconds, days)}:${formatElapsedTime(elapsedMilliseconds, hours, 24)}:${formatElapsedTime(elapsedMilliseconds, minutes, 60)}:${formatElapsedTime(elapsedMilliseconds, seconds, 60)}`;

}


}



function formatElapsedTime(elapsedtime, timeunit, base) {
let time = base ? (elapsedtime / timeunit) % base : elapsedtime / timeunit;
time = Math.floor(time);
time = time < 10 ? '0' + time : time;
return time;
}

</script>

</body>
</html>


我希望能够将 @attendance.DateAndTimeIn 转换为 json 对象,以便我可以将它与我的 javascript 函数一起使用并显示耗时,而不是 @attendance.DateAndTimeIn

最佳答案

我认为最简单的方法是将日期时间输出到 universal datetime string然后从该字符串创建一个 js Date 实例:

var dateString = '@Model.YourDate.ToString("u")';
var parsedDate = new Date(dateString);

请参阅此处的示例:https://dotnetfiddle.net/hY1ISw

更新:您可以将日期放入 html 属性中,然后在 js 代码中使用它:

<td class="DateTimeObject" data-date="@attendance.DateAndTimeIn.ToString("u")">@attendance.DateAndTimeIn</td>

<script type="text/javascript">
const dateElements = document.getElementsByClassName('DateTimeObject');
for(let i = 0; i < dateElements.length; i++){
var dateString = dateElements[i].dataset.date;
var parsedDate = new Date(dateString);
}
</script>

更新的示例:https://dotnetfiddle.net/fhz8bP

关于javascript - 如何在 razor 页面上将 C# Datetime 对象转换为 json 以进行客户端操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56648374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com