浏览器 provides a way to determine a document's last-modified date通过查看 document.lastModified
。此属性由 HTTP Last-Modified
header 确定,并作为字符串返回。
我的目标是将此属性转换为 Javascript Date
对象。目前我正在使用
var date = new Date(document.lastModified);
成功解析字符串。但是,我很好奇这是否适用于跨浏览器和跨语言环境。
对我来说非常有趣的是,document.lastModified
表示与给定的 HTTP Last-Modified
header 相同的日期,但字符串并不相同。在我看来,浏览器解析了 Last-Modified
header ,将其转换为其内部日期表示,然后将 document.lastModified
设置为基于此的字符串。如果是这种情况,document.lastModified
的格式可能会被 Javascript Date
构造函数解析,因为它们都可能使用相同的语言环境和格式规则。但我无法确定这一点。
最佳答案
你不能 var anotherDateObject = new Date(Date.parse(document.lastModified));
仅仅因为 javascript 不会将字符串解析为日期对象,直到它包含任何分隔符(如 '/'
或 '-'
除了 空格
在日期部分(时间部分对 ':'
没有问题)。Javascript 可以解析一个有效的日期字符串,其中空格作为分隔符。这里是
<html>
<body>
<script>
var dt = document.lastModified;
dt = dt.replace("/", " ");
dt = dt.replace("/", " ");
dt = dt.replace("-", " ");
dt = dt.replace("-", " ");
// '/' or '-' replcae these separtors with empty space
// Now your string can be parsed to Date Object
var anotherDateObject = new Date(Date.parse(dt));
alert(anotherDateObject + " -- " + anotherDateObject.getHours());
</script>
</body>
</html>
关于javascript - 在javascript Date对象中获取当前文档的最后修改日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13408995/