Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 Chrome的日期/时间格式问题_Javascript_Jquery_Google Chrome_Handlebars.js - Fatal编程技术网

Javascript Chrome的日期/时间格式问题

Javascript Chrome的日期/时间格式问题,javascript,jquery,google-chrome,handlebars.js,Javascript,Jquery,Google Chrome,Handlebars.js,我在JSON中获得日期/时间值,如下所示: "ChangedDate":"\/Date(1349469145000)\/" 在FF和IE中,我使用下面的助手函数以12小时格式(2012年5月10日-下午3:32:25)获取上述日期: Handlebars.registerHelper('FormatDate', function (date) { if (date == null) return ""; else

我在JSON中获得日期/时间值,如下所示:

"ChangedDate":"\/Date(1349469145000)\/"
在FF和IE中,我使用下面的助手函数以12小时格式(2012年5月10日-下午3:32:25)获取上述日期:

Handlebars.registerHelper('FormatDate', function (date) {
            if (date == null)
                return "";
            else {
                var value = new Date(parseInt(date.substr(6)));
                return value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear() + " - " + value.toLocaleTimeString();
            }
        });
然而,在Chrome中,我仍然使用24小时制(10/5/2012-15:32:25)

如何在Chrome中获得12小时格式的日期/时间值

当目的是向用户显示 使用用户选择的区域格式格式化的字符串。是 请注意,由于其性质,此方法的行为有所不同 取决于操作系统和用户的设置

您最好更改这一行:

return value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear() + " - " + value.toLocaleTimeString();
致:

我们检查小时数是否为12,如果是,我们从该数字中减去12

(value.getHours() > 12 ? value.getHours() - 12 : value.getHours())
因此,您的示例
15:32:25
将是
15-12=3
3:32:25

编辑

//set up example
var date = new Date("10/5/2012");
date.setHours(15,32,25,00);

//Get data from date
var month = date.getMonth()+1;
var day = date.getDate();
var year = date.getFullYear();

var hours = date.getHours();
var amOrPm = "AM";
if(date.getHours() > 12){
    hours = date.getHours() - 12;
    amOrPm = "PM";
}

var minutes = date.getMinutes();
if(minutes  < 10)
    minutes = "0" + minutes;

var seconds = date.getSeconds();
if(seconds < 10)
    seconds = "0" + seconds;

var dateString = month + "/" + day + "/" + year + " - " + hours + ":" + minutes + ":" + seconds;

console.log(dateString);
//设置示例
风险值日期=新日期(“2012年5月10日”);
日期.设定时间(15,32,25,00);
//从日期获取数据
var month=date.getMonth()+1;
var day=date.getDate();
var year=date.getFullYear();
var hours=date.getHours();
var amOrPm=“AM”;
如果(date.getHours()>12){
小时=日期。getHours()-12;
amOrPm=“PM”;
}
var minutes=date.getMinutes();
如果(分钟<10)
分钟=“0”+分钟;
var seconds=date.getSeconds();
如果(秒<10)
秒=“0”+秒;
var dateString=month+“/”+day+“/”+year+“-“+hours+”:“+minutes+”:“+seconds;
log(日期字符串);
我做了一个比需要更详细的例子,但它有助于向您展示发生了什么。希望能有帮助

简而言之,这看起来像:

//Get data from date
var dateString = (date.getMonth()+1) + "/" + date.getDate() + "/" +  date.getFullYear() + " - " + (date.getHours() > 12 ? date.getHours() - 12 : date.getHours())+ ":" + (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":" + (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds()) + " " + (date.getHours() > 12 ? "PM" : "AM");
//从日期获取数据
var dateString=(date.getMonth()+1)+“/”+date.getDate()+“/”+date.getFullYear()+“-”+(date.getHours()>12?date.getHours())+”:“+(date.getMinutes()<10?)+date.getMinutes():date.getMinutes()<10?+date.getSeconds():+”+(date.getSeconds())+(date.getHours())>12?“下午”:“上午”;

当目的是向用户显示 使用用户选择的区域格式格式化的字符串。是 请注意,由于其性质,此方法的行为有所不同 取决于操作系统和用户的设置

您最好更改这一行:

return value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear() + " - " + value.toLocaleTimeString();
致:

我们检查小时数是否为12,如果是,我们从该数字中减去12

(value.getHours() > 12 ? value.getHours() - 12 : value.getHours())
因此,您的示例
15:32:25
将是
15-12=3
3:32:25

编辑

//set up example
var date = new Date("10/5/2012");
date.setHours(15,32,25,00);

//Get data from date
var month = date.getMonth()+1;
var day = date.getDate();
var year = date.getFullYear();

var hours = date.getHours();
var amOrPm = "AM";
if(date.getHours() > 12){
    hours = date.getHours() - 12;
    amOrPm = "PM";
}

var minutes = date.getMinutes();
if(minutes  < 10)
    minutes = "0" + minutes;

var seconds = date.getSeconds();
if(seconds < 10)
    seconds = "0" + seconds;

var dateString = month + "/" + day + "/" + year + " - " + hours + ":" + minutes + ":" + seconds;

console.log(dateString);
//设置示例
风险值日期=新日期(“2012年5月10日”);
日期.设定时间(15,32,25,00);
//从日期获取数据
var month=date.getMonth()+1;
var day=date.getDate();
var year=date.getFullYear();
var hours=date.getHours();
var amOrPm=“AM”;
如果(date.getHours()>12){
小时=日期。getHours()-12;
amOrPm=“PM”;
}
var minutes=date.getMinutes();
如果(分钟<10)
分钟=“0”+分钟;
var seconds=date.getSeconds();
如果(秒<10)
秒=“0”+秒;
var dateString=month+“/”+day+“/”+year+“-“+hours+”:“+minutes+”:“+seconds;
log(日期字符串);
我做了一个比需要更详细的例子,但它有助于向您展示发生了什么。希望能有帮助

简而言之,这看起来像:

//Get data from date
var dateString = (date.getMonth()+1) + "/" + date.getDate() + "/" +  date.getFullYear() + " - " + (date.getHours() > 12 ? date.getHours() - 12 : date.getHours())+ ":" + (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":" + (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds()) + " " + (date.getHours() > 12 ? "PM" : "AM");
//从日期获取数据
var dateString=(date.getMonth()+1)+“/”+date.getDate()+“/”+date.getFullYear()+“-”+(date.getHours()>12?date.getHours())+”:“+(date.getMinutes()<10?)+date.getMinutes():date.getMinutes()<10?+date.getSeconds():+”+(date.getSeconds())+(date.getHours())>12?“下午”:“上午”;

谢谢。但是,我如何添加am/pm值并以两位数的格式显示值(01代替1,以分钟表示)?我将在这里制作一个js提琴来向您展示,但基本上与上面的概念相同。您将检查分钟数是否少于10分钟,如果少于10分钟,则您将预先挂起
0
。上午/下午取决于时间,所以如果是12小时,则是下午,否则是上午。请告诉我这是否是您想要的,如果不是,我将非常乐意为您提供更多帮助。谢谢你的帮助。我有一个附加条件来处理小时值12,如果(小时==12){hours=12+(小时%12);amOrPm=“PM”}除此之外,它是完美的,正是我想要的。谢谢。但是,我如何添加am/pm值并以两位数的格式显示值(01代替1,以分钟表示)?我将在这里制作一个js提琴来向您展示,但基本上与上面的概念相同。您将检查分钟数是否少于10分钟,如果少于10分钟,则您将预先挂起
0
。上午/下午取决于时间,所以如果是12小时,则是下午,否则是上午。请告诉我这是否是您想要的,如果不是,我将非常乐意为您提供更多帮助。谢谢你的帮助。如果(hours==12){hours=12+(hours%12);amOrPm=“PM”}除此之外,我还添加了一个处理小时值12的条件,它是完美的,并且正是我想要的。