Javascript 使用Angular js获取系统日期格式
我想使用Angular js获取系统日期格式。用户可能已将其选择为dd/mm/YYYY、dd/mm/yy。。。等等,它可以是用户在其计算机上选择的任何日期格式。可以获取日期格式吗 --编辑--Javascript 使用Angular js获取系统日期格式,javascript,angularjs,date,Javascript,Angularjs,Date,我想使用Angular js获取系统日期格式。用户可能已将其选择为dd/mm/YYYY、dd/mm/yy。。。等等,它可以是用户在其计算机上选择的任何日期格式。可以获取日期格式吗 --编辑-- 我没有像2016年12月10日、2016年12月10日这样的日期值。。。因此,对于这个日期值,我还需要从用户的系统中选择与用户选择的格式相同的格式。我认为,仅使用Javascript无法找到他/她的计算机日期格式。如果您在后端使用某种动态语言,您应该尝试以这种方式检索时间格式。我认为您仅使用Javascr
我没有像2016年12月10日、2016年12月10日这样的日期值。。。因此,对于这个日期值,我还需要从用户的系统中选择与用户选择的格式相同的格式。我认为,仅使用Javascript无法找到他/她的计算机日期格式。如果您在后端使用某种动态语言,您应该尝试以这种方式检索时间格式。我认为您仅使用Javascript无法找到他/她的计算机日期格式。如果您在后端使用一些动态语言,您应该尝试以这种方式检索时间格式。我认为您可以查看Mozilla MDN,但我相信JS无法获取这些信息,因为JS依赖于浏览器API。因此,如果浏览器API提供了这一点,那么使用任何框架(如.Net或Java等)都没关系。我认为您可以检查Mozilla MDN,但我相信JS无法获得这些信息,因为JS依赖于浏览器API。因此,如果浏览器API提供了这一点,那么可以使用任何框架,如.Net或Java等。不是一个完整的解决方案,但只能用作参考,您可以添加对新格式的支持 逻辑
- 为每年都存在的特定日期创建日期对象。日期:2016年12月31日
- 现在搜索第一个非字母数字字符。这是您的分隔符
- 现在有了3个部分,您可以通过将值与
进行比较,轻松找到31
dd
- 即使是年份部分也很简单,因为它可以有两个值,
或16
2016
- 这个月可能会很棘手。它可以有
或12
或Dec
。为此,您可以有两张支票。如果数字和等于12,则为mm。如果非数字和长度为3,则其December
elsemmm
mmmm
var d=new Date('2016/12/31')
并将d.toLocaleDateString()
传递给下面的函数
函数getDateFormat(dateStr){
var delimiter=dateStr.match(/[^0-9a-z]/i)[0];
var dateParts=dateStr.split(分隔符);
var r=dateParts.map(函数(d,i){
如果(d==31){
返回“dd”
}如果(!isNaN(d)和&(d==2016 | |(d+2000)==2016)){
返回d.toString().length==4?“yyy”:“yy”
}否则如果(d==12){
返回“mm”
}否则,如果(isNaN(d)){
变量t=d.replace(/[^a-z]/gi',)
返回_t.length==3?“mmm”:“mmmm”
}
});
返回r.join(分隔符);
}
Date.prototype.getSystemDateFormat=函数(){
返回getDateFormat(新日期('2016/12/31')。toLocaleDateString());
}
//或
Date.prototype.SYSTEM_格式=(函数(){
返回getDateFormat(新日期('2016/12/31')。toLocaleDateString());
})()
console.log(新日期().getSystemDateFormat())
console.log(新日期().SYSTEM\u格式)
var d1=“12/31/2016”
console.log(getDateFormat(d1))
d1=“31/12/2016”
console.log(getDateFormat(d1))
d1=“2016年12月31日”
console.log(getDateFormat(d1))
d1=“2016年12月31日”
console.log(getDateFormat(d1))
d1=“31-12-2016”
console.log(getDateFormat(d1))
d1=“31.12.2016”
log(getDateFormat(d1))不是一个完整的验证解决方案,但只能用作参考,您可以添加对新格式的支持 逻辑
- 为每年都存在的特定日期创建日期对象。日期:2016年12月31日
- 现在搜索第一个非字母数字字符。这是您的分隔符
- 现在有了3个部分,您可以通过将值与
进行比较,轻松找到31
dd
- 即使是年份部分也很简单,因为它可以有两个值,
或16
2016
- 这个月可能会很棘手。它可以有
或12
或Dec
。为此,您可以有两张支票。如果数字和等于12,则为mm。如果非数字和长度为3,则其December
elsemmm
mmmm
var d=new Date('2016/12/31')
并将d.toLocaleDateString()
传递给下面的函数
函数getDateFormat(dateStr){
var delimiter=dateStr.match(/[^0-9a-z]/i)[0];
var dateParts=dateStr.split(分隔符);
var r=dateParts.map(函数(d,i){
如果(d==31){
返回“dd”
}如果(!isNaN(d)和&(d==2016 | |(d+2000)==2016)){
返回d.toString().length==4?“yyy”:“yy”
}否则如果(d==12){
返回“mm”
}否则,如果(isNaN(d)){
变量t=d.replace(/[^a-z]/gi',)
返回_t.length==3?“mmm”:“mmmm”
}
});
返回r.join(分隔符);
}
Date.prototype.getSystemDateFormat=函数(){
返回getDateFormat(新日期('2016/12/31')。toLocaleDateString());
}
//或
Date.prototype.SYSTEM_格式=(函数(){
返回getDateFormat(新日期('2016/12/31')。toLocaleDateString());
})()
console.log(新日期().getSystemDateFormat())
console.log(新日期().SYSTEM\u格式)
var d1=“12/31/2016”
console.log(getDateFormat(d1))
d1=“31/12/2016”
console.log(getDateFormat(d1))
d1=“2016年12月31日”
console.log(getDateFormat(d1))
d1=“2016年12月31日”
console.log(getDateFormat(d1))
d1=“31-12-2016”
console.log(getDateFormat(d1))
d1=“31.12.2016”
log(getDateFormat(d1))AFAIK,浏览器不提供有关itI的信息。我有一些资源,但我不清楚如何使用它。谢谢可能会有帮助。这感觉像是一个XY问题。您想做一些未知的事情(X),并且相信获取系统日期格式(Y)将解决您的问题。你问的是Y,但不清楚为什么你首先需要解Y,因为Y并不是任何问题的通用解决方案。“从用户系统中选择”是什么意思?你好像很困惑。如果您在HT中显示
日期
选取器