我在MVC 5项目中有一个索引视图。此视图使用局部视图,部分视图包含在索引中,如下所示:
handle_sig () {
case "$1" in
HUP)
echo "CATCH: SIGHUP"
;;
INT)
echo "CATCH: SIGINIT"
;;
*)
echo "CATCH: SIG$1"
;;
esac
}
_trap () {
for sig in "$@"
do
trap "handle_sig $sig" "$sig"
done
}
_trap INT HUP USR1
之后,将使用部分视图_ls中的代码填充索引。 我想用class =“mtime”更改div的内部HTML。此div具有时间值,格式为HH:MM(UTC)。我想让它显示用户的当地时间。所以,我在部分的body标签结尾之前添加了这个javascript代码(我最初的索引中的nOT)
<div id="le">
@Html.Action("_ls", "Home")
</div>
但div中的值永远不会改变
答案 0 :(得分:1)
您可以使用日期的构造函数和UTC
后缀:
$('.mtime').each(function() {
var time = $(this).text();
var date = new Date();
date = new Date(date.toDateString() + ' ' + time + ' UTC');
$(this).text(date.getHours() + ':' + date.getMinutes());
});
答案 1 :(得分:0)
首先是代码中的错误,innerHTML
InnerHTML
。
第二个问题是,您尝试从对象innerHTML解析JavaScript日期,该对象不会成为Date
对象。
其次,您需要使用setInterval
告诉您的代码在设定的时间间隔内运行,我们可以将您的代码包装在function
中,然后每隔n
秒调用一次(我用过1):
<script type="text/javascript">
//First, let's call it for page load
calculateTimes();
//Now, let's call it every 1 second:
setInterval(calculateTimes, 1000);
function calculateTimes() {
$('.mtime').each(function (obj) {
var date = obj.innerHTML != ""
? new Date(obj.innerHTML)
: new Date();
var newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000);
var offset = date.getTimezoneOffset() / 60;
var hours = date.getHours();
newDate.setHours(hours - offset);
obj.innerHTML = newDate;
});
}
</script>