我需要以这种格式创建日期:
2016-02-18T13:24:10-08:00
年 - 月 - dayThour:分钟:secondsTIMEZONE
我试试这个:
var currentTime = new Date();
var year = currentTime.getFullYear();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var hour = currentTime.getHours();
var min = currentTime.getMinutes();
var secs = currentTime.getSeconds();
var time = year + "-" + month + "-" + day + "T" + hour + ":" + min + ":" + secs;
alert(time);
但我有两个问题:
1)如果只有一个数字,我需要所有的值都为零。
例如,今天打印2016-2-18
。我需要这个2才能成为02。
2)如何获得示例中的时区?
-08:00
+03:00
...
谢谢你的朋友们!
答案 0 :(得分:2)
<强> 1)强>
您只需要使用所需的零数填充值
function ZeroPad(str, n)
{
while( str.length < n )
{
str = '0' + str;
}
return str;
}
你有month = 2
只需致电
ZeroPad( month, 2 )
你会得到
02
<强> 2)强>
要获得时区偏移(如果我理解了这个问题),请看这里
Getting the client's timezone in JavaScript
正如你所做的那样,偏移就像你使用小时日期一样。
答案 1 :(得分:2)
也许你应该像这样编码?
var currentTime = new Date();
var year = currentTime.getFullYear();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var hour = currentTime.getHours();
var min = currentTime.getMinutes();
var secs = currentTime.getSeconds();
// Checking if the numbers are lower from 10, then add 0 before of it
if(year < 10) year = "0" + year
if(month < 10) month = "0" + month
if(day < 10) day = "0" + day
if(min < 10) min = "0" + min
if(hour < 10) hour = "0" + hour
if(secs < 10) secs = "0" + secs
var time = year + "-" + month + "-" + day + "T" + hour + ":" + min + ":" + secs;
alert(time);
&#13;
检查hour
,min
或secs
是否低于10.如果是,则添加&#34; 0&#34;之前。
答案 2 :(得分:1)
好的,这是完整的答案,包括填充日期以及添加GMT的时区差异。
$( document ).ready(function() {
var currentTime = new Date();
var year = currentTime.getFullYear();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var hour = currentTime.getHours();
var min = currentTime.getMinutes();
var secs = currentTime.getSeconds();
var timezoneOffset = currentTime.getTimezoneOffset();
var offsetHours = Math.floor(timezoneOffset / 60);
var offsetMinutes = timezoneOffset % 60;
if(month < 10) month = "0" + month;
if(day < 10) day = "0" + day;
if(min < 10) min = "0" + min;
if(hour < 10) hour = "0" + hour;
if(secs < 10) secs = "0" + secs;
if(offsetHours < 10) offsetHours = "0" + offsetHours;
if(offsetMinutes < 10) offsetMinutes = "0" + offsetMinutes;
var time = year + "-" + month + "-" + day + "T" + hour + ":" + min + ":" + secs + (offsetHours > 0 ? "+": "-") + offsetHours + ":" + offsetMinutes;
alert(time);
});