我有一个带有表格的html,我收集数据类型:文本,广播和日期。 当我拿起日期时,我可以看到格式为dd.mm.yyyy。 然后我去看看保存日期的方式,在BD中我看到: 宾语 日期 : “2017年9月12日”
现在我的问题是,有没有办法在html中以dd-mm-YYYY格式显示日期或者将日期保存在dd-mm-yyyy中。 非常感谢你提前 马塞拉
答案 0 :(得分:1)
您可以在indexedDB中存储日期对象。日期对象不关心它的显示方式,也不提供或存储与日期格式相关的属性。
如果使用浏览器的devtools面板查看对象库中的对象集,则会根据devtools中的某些内置设置显示日期值。日期显示在对象存储的devtools视图中的方式不反映日期的实际存储方式。日期实际上存储为简单数字。值的存储方式与显示方式之间存在很大差异。
因此,只要您将属性存储日期作为日期(而不是看起来像日期的字符串),那么您可以选择在从indexedDB检索日期后如何显示日期。您在使用indexedDB之外做出此决定,因为这不是indexedDB的问题。 indexedDB只关注存储值。
所以,在编写代码时:
1)将具有date属性的对象保存到indexedDB时,请确保date属性的类型为date。 2)从indexedDB获取对象时,获取其date属性,然后将date属性转换为您喜欢的格式的字符串。
以下是一些非常难看的伪代码可以帮助您:
// This function accepts a date value as input, and then returns a
// string representing the formatted date
function formatDate(dateValue) {
// Get the parts of the date
var dayOfMonthNumber = dateValue.getDate();
// The +1 is because January is 0, but we want it to be 1
var monthNumber = dateValue.getMonth() + 1;
var yearNumber = dateValue.getYear();
// Compose a string of the parts
var dateString = '';
dateString += dayOfMonthNumber;
dateString += '-';
dateString += monthNumber;
dateString += '-';
dateString += yearNumber;
return dateString;
}
myObject.myDateProperty = new Date('1.2.3');
saveObjectInIndexedDB(myObject);
var myObject = getObjectFromIndexedDB();
var myDatePropertyAsADate = myObject.myDateProperty;
var myFormattedDateString = formatDate(myDatePropertyAsDate);
var myElement = document.getElementById('myElement');
myElement.textContent = myFormattedDateString;