Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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 上午或下午怎么走?_Javascript_Jquery_Datetime - Fatal编程技术网

Javascript 上午或下午怎么走?

Javascript 上午或下午怎么走?,javascript,jquery,datetime,Javascript,Jquery,Datetime,我有大城市名称的按钮。 单击它们,我想在其中获取本地时间 $('#btnToronto').click(function () { var hours = new Date().getHours(); var hours = hours-2; //this is the distance from my local time alert ('Toronto time: ' + hours + ' h'); //this works correctly }); 但是我怎样

我有大城市名称的按钮。
单击它们,我想在其中获取本地时间

$('#btnToronto').click(function () {
    var hours = new Date().getHours();
    var hours = hours-2; //this is the distance from my local time
    alert ('Toronto time: ' + hours + ' h'); //this works correctly
});

但是我怎样才能得到AM或PM呢?

如果
hours
小于
12
,那就是上午

试试这个:

h = h > 12 ? h-12 +'PM' : h +'AM';

您应该能够检查小时数是否大于12小时

var ampm = (hours >= 12) ? "PM" : "AM";
但是你有没有考虑过在减去2之前,时间小于2的情况?您的小时数将为负数。

请尝试以下代码:

$('#btnToronto').click(function () {
    var hours = new Date().getHours();
    var hours = (hours+24-2)%24; 
    var mid='am';
    if(hours==0){ //At 00 hours we need to show 12 am
    hours=12;
    }
    else if(hours>12)
    {
    hours=hours%12;
    mid='pm';
    }
    alert ('Toronto time: ' + hours + mid);
});
你可以这样用

var dt = new Date();
    var h =  dt.getHours(), m = dt.getMinutes();
    var _time = (h > 12) ? (h-12 + ':' + m +' PM') : (h + ':' + m +' AM');
希望几分钟后效果会更好。

使用date.js

乳酪纸在这里

tt
是为
AM/PM

非常有趣的帖子。在采用date in参数的函数中,它可以如下所示:

function hourwithAMPM(dateInput) {
   var d = new Date(dateInput);
   var ampm = (d.getHours() >= 12) ? "PM" : "AM";
   var hours = (d.getHours() >= 12) ? d.getHours()-12 : d.getHours();

   return hours+' : '+d.getMinutes()+' '+ampm;

}

没有扩展和复杂编码的最佳方式:

date.toLocaleString([], { hour12: true});
var now=new Date();
var hours=now.getHours();
var minutes=now.getMinutes();
var ampm=小时数>=12?'pm’:‘am’;
小时数=小时数%12;
小时=小时?时数:12 ;;
分钟=分钟<100'+分钟:分钟;
var timewithampm=hours+':'+minutes+''+ampm;
返回时间为AMPM;
这对任何时候都有效

const now = new Date()
      .toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: true })
      .toLowerCase();
基本上你只需要把{hour12:true}放进去就可以了

结果=>now=“21:00 pm”


这是我在代码中使用的get时间

let current = new Date();
let cDate = current.getDate() + '-' + (current.getMonth() + 1) + '-' + current.getFullYear();
let hours = current.getHours();
let am_pm = (hours >= 12) ? "PM" : "AM";

if(hours >= 12){
    hours -=12;
}

let cTime = hours + ":" + current.getMinutes() + ":" + current.getSeconds() +" "+ am_pm;
let dateTime = cDate + ' ' + cTime;

console.log(dateTime);   // 1-3-2021 2:28:14 PM

嗯。。。除以12?模?@elclanrs,
hours
例如是
19
。除以12。。。什么?如果
hours<12
那么是下午,否则是上午,不是吗?@SunSky:lol。我搞砸了,我的坏朋友。我把我的答案贴了出来,希望能有帮助。你为什么认为你应该减去两个小时?这毫无意义。从
new date()
返回的日期将已经是您的本地时间,除非您的计算机时区设置错误。如果你考虑的是与UTC的时区偏移,多伦多在标准时间是
-0500
,在白天是
-0400
。它从来都不是
-0200
。和
.getHours()
返回本地时间的小时数。考虑:午夜是上午还是下午?中午是什么意思?“这说明中午是什么时候?”保罗。非常正确-固定在中午。午夜应该返回为0,应该是am,所以至少应该工作。困惑,但我会尝试所有的解决方案。解决了(希望)。如果时间在上午2点之前,在调整小时之前会发生什么?中午12:30是上午还是下午?这段代码会说它是什么?不幸的是,这在中午12点的时候不起作用。当小时数>=12时,时间为PM,但当小时数>=13时,时间仅减去12
function hourwithAMPM(dateInput) {
   var d = new Date(dateInput);
   var ampm = (d.getHours() >= 12) ? "PM" : "AM";
   var hours = (d.getHours() >= 12) ? d.getHours()-12 : d.getHours();

   return hours+' : '+d.getMinutes()+' '+ampm;

}
date.toLocaleString([], { hour12: true});
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12;
minutes = minutes < 10 ? '0' + minutes : minutes;
var timewithampm = hours + ':' + minutes + ' ' + ampm;
return timewithampm;
var dt = new Date();
var h = dt.getHours(),
  m = dt.getMinutes();
var time;
if (h == 12) {
  time = h + ":" + m + " PM";
} else {
  time = h > 12 ? h - 12 + ":" + m + " PM" : h + ":" + m + " AM";
}
//var time = h > 12 ? h - 12 + ":" + m + " PM" : h + ":" + m + " AM";

console.log(`CURRENT TIME IS ${time}`);
const now = new Date()
      .toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', hour12: true })
      .toLowerCase();
let current = new Date();
let cDate = current.getDate() + '-' + (current.getMonth() + 1) + '-' + current.getFullYear();
let hours = current.getHours();
let am_pm = (hours >= 12) ? "PM" : "AM";

if(hours >= 12){
    hours -=12;
}

let cTime = hours + ":" + current.getMinutes() + ":" + current.getSeconds() +" "+ am_pm;
let dateTime = cDate + ' ' + cTime;

console.log(dateTime);   // 1-3-2021 2:28:14 PM