我正在使用Intl.DateTimeFormat
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat API来格式化网页部分中的日期和时间,但是我无法获得正确的小时和分钟。
现在在我的国家/地区是时间6:56pm
,并且我正在网页中获取此时间:12:56pm
当前页面中的外观如下:<span id="date">Tuesday, October 24, 2017, 12:56 PM ET</span>
这是我的代码:
var bindEventsToUI = function () {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth();
var yyyy = today.getFullYear();
var hours = today.getHours()
var minutes = today.getMinutes()
var $dateEl = $('#date');
var date = new Date(Date.UTC(yyyy, mm, dd, hours, minutes));
var options = {
hour12: true,
formatMatcher: 'best fit',
localeMatcher: 'lookup',
weekday: 'long',
year: 'numeric',
month: 'long',
hour: 'numeric',
minute: 'numeric',
day: 'numeric'
};
var currentDate = new Intl.DateTimeFormat('en-US', options).format(date);
$dateEl.text(currentDate + ' ET');
};
我还将这个硬编码的“ ET”放在
.text()
函数中:$dateEl.text(currentDate + ' ET');
有没有一种方法可以自动设置?
一切似乎都很好,只是时间不正确,我在做什么错?
最佳答案
我很确定您想这样做:
//<![CDATA[
$.fn.extend({
dateET:function(dateString){
var dt = dateString ? new Date(dateString) : Date.now();
var options = {
hour12:true,
formatMatcher:'best fit',
localeMatcher:'lookup',
weekday:'long',
year:'numeric',
month:'long',
hour:'numeric',
minute:'numeric',
day:'numeric'
}
var itd = new Intl.DateTimeFormat('en-US', options);
var et = itd.format(dt)+' ET';
return this.each(function(){
$(this).val(et).append(et);
});
}
});
$(function(){
$('.output').dateET();
});
//]]>
/* external.css */
html,body{
padding:0; margin:0;
}
body{
background:#000; overflow-y:scroll;
}
.main{
width:936px; background:#fff; padding:20px; margin:0 auto;
}
.output[type=text]{
width:400px;
}
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
<head>
<meta http-equiv='content-type' content='text/html;charset=utf-8' />
<meta name='viewport' content='width=device-width' />
<title>dateET</title>
<link type='text/css' rel='stylesheet' href='external.css' />
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script>
<script type='text/javascript' src='external.js'></script>
</head>
<body>
<div class='main'>
<div class='output'></div>
<input class='output' type='text' value='' />
<div class='output'></div>
</div>
</body>
</html>
当然,您应该注意到,只是提供了所需的格式。它仍然给了我西海岸的时间。
关于javascript - 我无法使用Intl.DateTimeFormat API更新小时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46922266/