我有一个HTML格式的只读字段。在这里,我需要以与用户的语言环境系统相关的格式显示日期(来自后端系统)。这是一个可编辑的字段,用户可以根据系统设置输入日期。
我想知道如何根据用户的系统设置获取系统日期格式(即可以是dd.MM.yyyy,MM / dd / YYYY,dd-MM-YYYY,YYYY-MM-dd PC)使用Javascript或jQuery。
此致
SAP学习者
答案 0 :(得分:0)
您可以使用JS中的内置函数获取系统日期
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1;
var yyyy = today.getFullYear();
if(dd<10) {
dd = '0'+dd
}
if(mm<10) {
mm = '0'+mm
}
today = mm + '/' + dd + '/' + yyyy;
document.write(today)
document.write("<br>")
// OR other solution
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
答案 1 :(得分:0)
我将假定HTML字段是HTML5日期类型字段。根据浏览器和语言区域设置,可以看到不同的前端用户格式,但是基础值始终由格式yyyy-mm-dd
定义。另外,当张贴包含日期字段的表单时,服务器端也会收到此格式。
基于Javascript的日期基于对象Date
。但是,除了日历日期外,还包括时间,微秒和时区。要获得在用户语言环境中格式化的当前用户系统日期浏览器,可以使用。
var dateLocale= new Date().toLocaleString();
如果用户使用日期输入字段输入日期,则仅获取值将得到格式“ yyyy-mm-dd”。但是,有一种方法可以使用方法valueAsDate
来检索内容。这将返回一个Date
对象。但是,此Date对象的时间为格林尼治标准时间所在的12:00 AM。当您尝试检索语言环境日期部分时,内容可能是错误的,因为它所在的时区错误。要解决此问题,请将时区偏移分钟添加到Date对象,以获取正确的语言环境时间和日期。
var dv=document.getElementById('date_field').valueAsDate;
dv.setMinutes(dv.getTimezoneOffset());
var datelocale=dv.toLocaleDateString;
现在,您可以使用datelocale
变量执行任何操作,但不要尝试将其放回日期输入字段,因为它可能不兼容。您可以将其放入文本输入类型或隐藏类型。