我有一个显示DD-MM-YYYY
的公共日期字段,但存储在数据库中的实际值是YYYY-MM-DD
。问题是这个值也被传输到一个简单文本字段内的远程服务器(具有只读属性),我想在这个字段上进行交互,以便在DD-MM-YYYY
中更改它的显示。
我不想在数据库结构中触摸某些东西来改变日期的存储方式。我确切地说我无法访问这个远程服务器的html,但我可以通过将代码放在JS文件中来修改某些字段。
我在这里看到了一些论坛,但我没有找到解决方案,由于我的javascript知识不足,我被困住了。感谢。
答案 0 :(得分:1)
使用内置的javascript函数来构建所需的格式。将字符串解析为日期对象,并使用以下函数创建所需的格式
getDate() -> to get date
getMonth() -> to get month
getFullYear() -> to get year
实施例
//var birth_date = document.getElementById('birth_date');
//use birth_date instead of hard coded date
//var day = new Date(Date.parse(birth_date));
var day = new Date(Date.parse("2013-09-02"));
alert(day.getDate() + "-" + day.getMonth() + "-" + day.getFullYear());
//set value
document.getElementById('birth_date').value = day.getDate() + "-" + day.getMonth() + "-" + day.getFullYear();
答案 1 :(得分:0)
假设你有一个字符串var s = '1989-05-06';
。你可以分别得到年,月和日:
var my_date = s.split('-');
var year = my_date[0];
var month = my_date[1];
var day = my_date[2];
然后,您可以在下面显示字符串(或以您想要的任何格式组织日期,月份和年份):
var display_str = '' + day + '-' + month + '-' + year;
答案 2 :(得分:0)
好吧,我们可以使用简单的javascript函数来做到这一点。 我们只需要传递服务器日期(YYYY-MM-DD),它将返回预期日期(DD-MM-YYYY)格式。
function convertDate(serverDate) {
var dateCollection = serverDate.match(/\d+/g),
year = dateCollection[0],
month = dateCollection[1],
day = dateCollection[2];
return day + '-' + month + '-' + year;
}
实施例: -
convertDate('2013-09-02'); // (YYYY-MM-DD) format
输出: -
'02-09-2013' //(DD-MM-YYYY) format
希望这会对你有帮助......
答案 3 :(得分:0)
您可以捕获表单提交事件并在发送之前更改值:
假设您有一个表单#myForm
:
var form = document.getElementById('myForm');
抓住提交:
try {
form.addEventListener("submit", changeValue, false);
} catch(e) {
form.attachEvent("onsubmit", changeValue); //Internet Explorer 8-
}
现在您可以在原地更改所需的值。
function changeValue(){
var field = document.getElementById('idOfField');
field.value = field.value.split('-').reverse().join('-');
}