API indexedDB-以DD.MM.YYYY格式显示日期

时间:2017-09-06 10:02:17

标签: html date indexeddb

我有一个带有表格的html,我收集数据类型:文本,广播和日期。 当我拿起日期时,我可以看到格式为dd.mm.yyyy。 然后我去看看保存日期的方式,在BD中我看到: 宾语 日期 : “2017年9月12日”

现在我的问题是,有没有办法在html中以dd-mm-YYYY格式显示日期或者将日期保存在dd-mm-yyyy中。 非常感谢你提前 马塞拉

1 个答案:

答案 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;