我正在尝试使用 Javascript 语法在 WSH 中进行一些简单的文件比较。 我使用的是Windows XP SP3,脚本是通过Cscript.exe运行的
我的问题来自 File 对象的 dateLastModified 属性,它不处理通常的日期操作函数 - 例如 getDay() 或 getFullYear()
Microsoft Javascript 似乎有两种类型的日期 这是代码示例:
var fso = WSH.CreateObject("Scripting.FileSystemObject")
f = fso.getFile('C:\\WINDOWS\\notepad.exe')
WSH.echo(f.Name)
WSH.echo(f.dateLastModified +" |type = "+ typeof(f.dateLastModified))
var d = new Date()
WSH.echo(d +" |type = "+ typeof(d))
这是我得到的输出
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
notepad.exe
Sun Apr 13 19:34:16 UTC+0200 2008 |type = date
Tue Jul 17 14:28:08 UTC+0200 2012 |type = object
当然,如果我尝试:
WSH.echo( f.dateLastModified.getFullYear() )
我收到一个错误,告诉 f.dateLastModified 不是一个对象
所以,我知道如何操作经典的 Date 对象, 但是我该如何对 fileSystemObject 给我的这个日期类型做同样的事情呢?
是否可以将一种类型转换为另一种类型?
最佳答案
您可以将date
值转换为Date
对象,方法是使用该值作为对象构造函数的参数创建一个新的Date
对象。就像下面的例子:
var fileDate = new Date( f.dateLastModified );
WSH.echo( fileDate + ' |type = ' + typeof(fileDate) );
WSH.echo( fileDate.getFullYear());
要将 Date
对象转换为 date
值,请使用:
var dateVal = fileDate.getVarDate();
WSH.echo( dateVal + ' |type = ' + typeof(dateVal) );
关于javascript - WSH 中的日期时间格式(以及与日期对象的差异),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11522734/