Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中使AM/PM与时间一起正确工作_Javascript_Date_Time_Format - Fatal编程技术网

如何在Javascript中使AM/PM与时间一起正确工作

如何在Javascript中使AM/PM与时间一起正确工作,javascript,date,time,format,Javascript,Date,Time,Format,我有这个Javascript代码用于显示时间(根据时区)和日期,但问题在于AM/PM。它不会随着时间的变化而自动更新;经过多次尝试,我在自动更新失败,因此在这里寻找一些帮助。代码如下: $(document).ready(function(){ // Create two variable with the names of the months and days in an array // Count 3 variable for months var monthNames = [ "Jan

我有这个Javascript代码用于显示时间(根据时区)和日期,但问题在于AM/PM。它不会随着时间的变化而自动更新;经过多次尝试,我在自动更新失败,因此在这里寻找一些帮助。代码如下:

$(document).ready(function(){
// Create two variable with the names of the months and days in an array
// Count 3 variable for months
var monthNames = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; 
var dayNames= ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]

// Create a newDate() object
var newDate = new Date();
// Extract the current date from Date object
newDate.setDate(newDate.getUTCDate());
// Output the day, date, month and year   
$('#Date').html(/*dayNames[newDate.getUTCDay()] + " " + */monthNames[newDate.getMonth()] + ' ' + newDate.getDate() + ', ' + newDate.getFullYear());

setInterval( function() {
  // Create a newDate() object and extract the seconds of the current time on the visitor's
  var seconds = new Date().getUTCSeconds();
  // Add a leading zero to seconds value
  $("#sec").html(( seconds < 10 ? "0" : "" ) + seconds);
  },1000);

setInterval( function() {
  // Create a newDate() object and extract the minutes of the current time on the visitor's
  var minutes = new Date().getUTCMinutes();
  // Add a leading zero to the minutes value
  $("#min").html(( minutes < 10 ? "0" : "" ) + minutes);
  },1000);

setInterval( function() {
  // Create a newDate() object and extract the hours of the current time on the visitor's
  var hours = new Date().getUTCHours();
    var ampm    = 'AM';
if(hours > 5)
{
    hours -= 5; // Time Zone
    ampm = 'AM'; // AM/PM According to Time Chosen
}
    else if(hours == 5)
{
    ampm = 'PM';    
};

  // Add a leading zero to the hours value
  $("#hours").html(( hours < 10 ? "0" : "" ) + hours);

  $("#ampm").html(ampm);
  }, 1000); 
});

<span id="hours"></span>:<span id="min"></span>&nbsp;<span id="ampm"></span>&nbsp;&nbsp;<span id="Date"></span>
$(文档).ready(函数(){
//在数组中创建两个名为月份和天的变量
//计算3个月的变量
var monthNames=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];
var dayNames=[“星期日”、“星期一”、“星期二”、“星期三”、“星期四”、“星期五”、“星期六”]
//创建一个newDate()对象
var newDate=新日期();
//从日期对象提取当前日期
newDate.setDate(newDate.getUTCDate());
//输出日期、日期、月份和年份
$('#Date').html(/*dayNames[newDate.getUTCDay()]+'+*/monthNames[newDate.getMonth()]+'+'+newDate.getDate()+','+newDate.getFullYear());
setInterval(函数(){
//创建一个newDate()对象,并提取访问者当前时间的秒数
var seconds=new Date().getUTCSeconds();
//将前导零添加到秒值
$(“#秒”).html((秒<10?:“)+秒);
},1000);
setInterval(函数(){
//创建一个newDate()对象,并提取访问者当前时间的分钟数
var minutes=new Date().getUTCMinutes();
//将前导零添加到分钟值
$(“#min”).html((分钟<10?:“)+分钟);
},1000);
setInterval(函数(){
//创建一个newDate()对象,并提取访问者当前时间的小时数
var hours=新日期().getUTCHours();
var ampm='AM';
如果(小时数>5)
{
小时-=5;//时区
ampm='AM';//根据所选时间的AM/PM
}
否则,如果(小时==5)
{
ampm=‘PM’;
};
//将前导零添加到小时值
$(“#小时”).html((小时<10?:“)+小时);
$(“#ampm”).html(ampm);
}, 1000); 
});
:   

也许一些图书馆会让你的生活更轻松

我不想自己写这篇文章,但这绝对是一个很好的实践
我想这正是你想要的,并一直在setInterval中调用time来更新时间

也许一些图书馆会让你的生活更轻松

我不想自己写这篇文章,但这绝对是一个很好的实践
我想这正是你想要的,并一直在setInterval中调用time来更新时间

我不确定您想做什么,但如果您想使用主机系统设置UTC-0500时区,然后以特定格式显示日期和时间,这里已经有很多问题了

一个简单的方法是获取主机日期,根据主机时区偏移量移动时间,并补偿默认的5小时。然后适当地安排时间。时间以分钟为单位进行调整,因为这是getTimezoneOffset返回的值,适用于偏移量不超过小时的情况

调整日期后,设置am/pm非常简单:

var ampm = d.getHours() < 12? 'am' : 'pm';
var ampm=d.getHours()上午:"下午";;
根据需要经常调用函数以显示当前时间

//返回调整为UTC-0500的日期
函数getOffsetDate(){
var d=新日期();
//设置为UTC-0500:添加timzone偏移,然后减去300分钟
d、 setMinutes(d.getMinutes()+d.getTimezoneOffset()-300);
返回d;
}
//将时间格式化为hh:mm:ss ap
函数格式化时间(d){

函数z(n){return(n我不太确定您想做什么,但是如果您试图使用主机系统设置UTC-0500时区,然后以特定格式显示日期和时间,这里已经有很多问题了

一个简单的方法是获取主机日期,根据主机时区偏移量移动时间,并补偿默认的5小时。然后适当地设置时间格式。时间以分钟为单位进行调整,因为getTimezoneOffset返回的是时间,适合偏移量不超过小时的情况

调整日期后,设置am/pm非常简单:

var ampm = d.getHours() < 12? 'am' : 'pm';
var-ampm=d.getHours();
根据需要经常调用函数以显示当前时间

//返回调整为UTC-0500的日期
函数getOffsetDate(){
var d=新日期();
//设置为UTC-0500:添加timzone偏移,然后减去300分钟
d、 setMinutes(d.getMinutes()+d.getTimezoneOffset()-300);
返回d;
}
//将时间格式化为hh:mm:ss ap
函数格式化时间(d){

函数z(n){return(注意
newDate.setDate(newDate.getUTCDate());
可能会更改日期,因为UTC日期并不总是与本地日期相同。为什么要使用UTC值减去5?是否尝试将日期设置为不同的时区?对此已经有很多问题。请注意
newDate.setDate(newDate.getUTCDate());
可能会更改日期,因为UTC日期并不总是与本地日期相同。为什么要使用UTC值然后减去5?是否试图将日期设置为不同的时区?对此已经有很多问题。这应该是一个注释,而不是答案。这应该是一个注释,而不是答案。