移除';EDT&x27;从带有tolocalString()的javascript返回的日期开始
我对javascript比较陌生,所以这可能是一个非常简单的问题。有没有一种简单的方法可以在返回toLocaleString的日期后停止“EDT”打印?移除';EDT&x27;从带有tolocalString()的javascript返回的日期开始,javascript,date,formatting,edt,Javascript,Date,Formatting,Edt,我对javascript比较陌生,所以这可能是一个非常简单的问题。有没有一种简单的方法可以在返回toLocaleString的日期后停止“EDT”打印? 谢谢 时区是否总是在字符串的末尾?(我尝试时根本不显示时区。) 如果是,则可以使用删除字符串的最后四个字符(空格+3个字符的时区) 时区总是在字符串的末尾吗?(我尝试时根本不显示时区。) 如果是,则可以使用删除字符串的最后四个字符(空格+3个字符的时区) 据我所知,在windows上,没有浏览器从toLocaleString返回“EDT”, 而
谢谢 时区是否总是在字符串的末尾?(我尝试时根本不显示时区。) 如果是,则可以使用删除字符串的最后四个字符(空格+3个字符的时区)
时区总是在字符串的末尾吗?(我尝试时根本不显示时区。) 如果是,则可以使用删除字符串的最后四个字符(空格+3个字符的时区)
据我所知,在windows上,没有浏览器从toLocaleString返回“EDT”, 而且只有Chrome可以返回时区 其他平台可能会以不同方式分配字符串 我最大的不满是Chrome使用24小时时钟作为本地时间 //测试新日期().toLocaleString()(windows 7)
- Safari 5.0>>2011年6月14日星期二15:13:43
- Chrome 9.0.597.98>>2011年6月14日星期二15:15:01 GMT-0400(东部夏时制)
- 歌剧院2011年6月14日下午3:15:37
- Firefox 4.0.1>>2011年6月14日星期二下午3:16:33
- MSIE 8.0>>2011年6月14日星期二下午3:16:06
- MSIE 9.0>>2011年6月14日星期二下午3:17:09
var d=new Date().toLocaleString();
var s= d.toLocaleString().match(/^[^:]+(:\d\d){2} *(am|pm)\b/i)[0];
returned value: (Chrome)
Tue Jun 14 2011 15:26:11:11
另一种方法是使用区域设置日期和时间字符串,令人惊讶的是,它不会在chrome上返回时区,但您的差异可能会有所不同
var D=new Date();
D.toLocaleDateString()+' '+D.toLocaleTimeString()
返回2011年6月14日星期二15:44:35在Chrome中据我所知,在windows上没有浏览器从toLocaleString返回“EDT”, 而且只有Chrome可以返回时区 其他平台可能会以不同方式分配字符串 我最大的不满是Chrome使用24小时时钟作为本地时间 //测试新日期().toLocaleString()(windows 7)
- Safari 5.0>>2011年6月14日星期二15:13:43
- Chrome 9.0.597.98>>2011年6月14日星期二15:15:01 GMT-0400(东部夏时制)
- 歌剧院2011年6月14日下午3:15:37
- Firefox 4.0.1>>2011年6月14日星期二下午3:16:33
- MSIE 8.0>>2011年6月14日星期二下午3:16:06
- MSIE 9.0>>2011年6月14日星期二下午3:17:09
var d=new Date().toLocaleString();
var s= d.toLocaleString().match(/^[^:]+(:\d\d){2} *(am|pm)\b/i)[0];
returned value: (Chrome)
Tue Jun 14 2011 15:26:11:11
另一种方法是使用区域设置日期和时间字符串,令人惊讶的是,它不会在chrome上返回时区,但您的差异可能会有所不同
var D=new Date();
D.toLocaleDateString()+' '+D.toLocaleTimeString()
返回2011年6月14日星期二15:44:35在Chrome中无法确定toLocaleString将返回什么;你当然不能保证
EDT
会出现在每台运行它的机器上,更不用说任何时区指示了
来自Mozilla的开发者网络:
该方法在格式化日期时依赖于底层操作系统。它使用运行脚本的操作系统的格式约定将日期转换为字符串。例如,在美国,月份出现在日期(1998年4月15日)之前,而在德国,日期出现在月份(1998年4月15日)之前。如果操作系统不符合2000年标准,并且在1900年之前或2000年之后的几年内未使用全年,则ToLocalString将返回一个不符合2000年标准的字符串。转换操作系统未正确格式化的年份时,ToLocalString的行为类似于toString
一种可能的解决方法是使用and构造自定义日期字符串
这通常不会在其输出中包含时区,但即使这样也不完美,因为您无法知道输出的确切格式
因此,最好的解决方案是使用自定义日期格式功能:
// Add leading-zeros to numbers less than 10[000...]
function padZ(num, n) {
n = n || 1; // Default assume 10^1
return num < Math.pow(10, n) ? "0" + num : num;
}
function formattedDate(d) {
var day = d.getDate();
var month = d.getMonth() + 1; // Note the `+ 1` -- months start at zero.
var year = d.getFullYear();
var hour = d.getHours();
var min = d.getMinutes();
var sec = d.getSeconds();
return month+"/"+day+"/"+year+" "+hour+":"+padZ(min)+":"+padZ(sec);
}
//将前导零添加到小于10[000…]的数字中
函数padZ(num,n){
n=n | | 1;//默认设置为10^1
returnnum
要深入了解可用的
Date
方法,请查看MDN。无法确定toLocaleString
将返回什么;你当然不能保证EDT
会出现在每台运行它的机器上,更不用说任何时区指示了
来自Mozilla的开发者网络:
该方法在格式化日期时依赖于底层操作系统。它使用运行脚本的操作系统的格式约定将日期转换为字符串。例如,在美国,月份出现在日期(1998年4月15日)之前,而在德国,日期出现在月份(1998年4月15日)之前。如果操作系统不符合2000年标准,并且在1900年之前或2000年之后的几年内未使用全年,则ToLocalString将返回一个不符合2000年标准的字符串。转换操作系统未正确格式化的年份时,ToLocalString的行为类似于toString
一种可能的解决方法是使用and构造自定义日期字符串
这通常不会在其输出中包含时区,但即使这样也不完美,因为您无法知道输出的确切格式
因此,最好的解决方案是使用自定义日期格式功能:
// Add leading-zeros to numbers less than 10[000...]
function padZ(num, n) {
n = n || 1; // Default assume 10^1
return num < Math.pow(10, n) ? "0" + num : num;
}
function formattedDate(d) {
var day = d.getDate();
var month = d.getMonth() + 1; // Note the `+ 1` -- months start at zero.
var year = d.getFullYear();
var hour = d.getHours();
var min = d.getMinutes();
var sec = d.getSeconds();
return month+"/"+day+"/"+year+" "+hour+":"+padZ(min)+":"+padZ(sec);
}
//将前导零添加到小于10[000…]的数字中
函数padZ(num,n){
n=n | | 1;//默认设置为10^1
返回数值<数学功率(10,n)?“0”+nu