yyyy-mm-dd hh:mm:ss aa 的 JavaScript 转换帮助
有人能发现这个函数有什么错误吗? .. 该函数接收 yyyy-mm-dd hh:mm:ss aa 类型的字符串,并将其转换为 UTC 并构建字符串 yyyy-mm-dd hh:mm:ss。
function LocalTimetoUTC(localTime)
{
var time = localTime.split(" "); //Received :- yyyy-mm-dd hh:mm:ss aa
var yearday = time[0].split("-");
var dateTime = time[1].split(":");
var ampm = time[2];
var hours = 0;
var year = yearday[0];
var month = yearday[1]-1;
var day = yearday[2];
hours = dateTime[0];
var minutes = dateTime[1];
var seconds = dateTime[2];
/* We have to first convert it to 24 hour format
* 12:00:00 AM : 00:00:00
* 12:00:00 PM : 12:00:00
* Anytime other than 12
* 1:00:00 AM : 1:00:00
* 1:00:00 PM : 13:00:00
*/
if(ampm == "PM")
{
//If it is 12PM, adding 12 will create a problem
if(hours != 12)
{
hours +=12;
}
}
else //AM CASE
{
if(hours == 12)
{
hours = 00;
}
}
var now = new Date(year,month,day,hours,minutes,seconds);
var utcString = now.getUTCFullYear()+"-"
+(now.getUTCMonth()+1)+"-"+now.getUTCDate()+""
+now.getUTCHours()+":"+now.getUTCMinutes()+":"+now.getUTCSeconds();
return utcString;
}
can anybody spot any mistake in this function? .. This is a function which receives a string of type yyyy-mm-dd hh:mm:ss aa and converts to UTC and builds up a string yyyy-mm-dd hh:mm:ss.
function LocalTimetoUTC(localTime)
{
var time = localTime.split(" "); //Received :- yyyy-mm-dd hh:mm:ss aa
var yearday = time[0].split("-");
var dateTime = time[1].split(":");
var ampm = time[2];
var hours = 0;
var year = yearday[0];
var month = yearday[1]-1;
var day = yearday[2];
hours = dateTime[0];
var minutes = dateTime[1];
var seconds = dateTime[2];
/* We have to first convert it to 24 hour format
* 12:00:00 AM : 00:00:00
* 12:00:00 PM : 12:00:00
* Anytime other than 12
* 1:00:00 AM : 1:00:00
* 1:00:00 PM : 13:00:00
*/
if(ampm == "PM")
{
//If it is 12PM, adding 12 will create a problem
if(hours != 12)
{
hours +=12;
}
}
else //AM CASE
{
if(hours == 12)
{
hours = 00;
}
}
var now = new Date(year,month,day,hours,minutes,seconds);
var utcString = now.getUTCFullYear()+"-"
+(now.getUTCMonth()+1)+"-"+now.getUTCDate()+""
+now.getUTCHours()+":"+now.getUTCMinutes()+":"+now.getUTCSeconds();
return utcString;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的主要问题是您在数字运算中使用字符串。此外,您的输出格式也存在一些问题。这是未经测试的重构:-
Your primary problem is you are using strings in numeric operations. In addition your output formatting has some problems too. Here is an untested refactoring:-
你应该使用 Datejs 来解析日期
Yyou should use Datejs for parsing dates