Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计算日期的日期名称_Javascript_Java - Fatal编程技术网

Javascript 计算日期的日期名称

Javascript 计算日期的日期名称,javascript,java,Javascript,Java,嗨,我是Java新手,我正在尝试计算日期的日期名称。 我正在使用Esko自动化引擎运行我的Java 如果我根据实际日期创建JavaScript脚本,它将使用以下函数工作: function f () { var date = new Date().toString().split(' ')[0]; return date; } f (); 但当我尝试用另一个计算日期替换新日期()时,它失败了。 计算的日期显示如下:05/02/19 10:00am,并从xml文件中剥离出来。

嗨,我是Java新手,我正在尝试计算日期的日期名称。 我正在使用Esko自动化引擎运行我的Java

如果我根据实际日期创建JavaScript脚本,它将使用以下函数工作:

function f () {
    var date = new Date().toString().split(' ')[0];
    return date;
}

f ();
但当我尝试用另一个计算日期替换新日期()时,它失败了。 计算的日期显示如下:05/02/19 10:00am,并从xml文件中剥离出来。 这被命名为ScotlandDeliveryDate

function f () {
    var date = ScotlandDeliveryDate ().toString().split(' ')[0];
    return date;
}

f ();
结果:

javax.script.ScriptException: <eval>:4:25 Missing space after numeric literal
var date = 05/02/19 10:00am().toString().split(' ')[0];
^ in <eval> at line number 4 at column number 25
javax.script.ScriptException::4:25数字文字后缺少空格
变量日期=19年2月5日上午10:00().toString().split(“”)[0];
^在第4行第25列中

有人有什么想法吗?

我对“Esko”一无所知。但在上面给出的示例中,您试图在另一个SmartName的定义中使用一个SmartName(
ScotlandDeliveryDate
)。在下面的链接中,它们似乎表明这是通过将SmartName括在括号中完成的

因此,我认为您的代码需要如下所示:

function f () {
   return '[ScotlandDeliveryDate]'.split(' ')[0];
}
f ();
function f () {
   var monthDayYear = '[ScotlandDeliveryDate]'.split(' ')[0];
   var dateTimeStamp = Date.parse(monthDayYear);
   var dateObject = new Date(dateTimeStamp);
   return new Intl.DateTimeFormat('en-US', {weekday:'long'}).format(dateObject);
}
f ();
但是,从您的错误消息来看,
[ScotlandDeliveryDate]
将返回
05/02/19 10:00am
;如果是这种情况,那么在空格上拆分该值,然后获取第一个值仍然无法得到日期名称

要做到这一点,您需要以下内容:

function f () {
   return '[ScotlandDeliveryDate]'.split(' ')[0];
}
f ();
function f () {
   var monthDayYear = '[ScotlandDeliveryDate]'.split(' ')[0];
   var dateTimeStamp = Date.parse(monthDayYear);
   var dateObject = new Date(dateTimeStamp);
   return new Intl.DateTimeFormat('en-US', {weekday:'long'}).format(dateObject);
}
f ();
或者,如果没有Intl对象:

function f () {
   var dayNames = [
      'Sunday',
      'Monday',
      'Tuesday',
      'Wednesday',
      'Thursday',
      'Friday',
      'Saturday'
   ];
   var monthDayYear = '[ScotlandDeliveryDate]'.split(' ')[0];
   var dateTimeStamp = Date.parse(monthDayYear);
   var dateObject = new Date(dateTimeStamp);
   var dayNumber = dateObject.getDay();
   return dayNames[dayNumber];
}
f ();

我能知道Scotland DeliveryDate之后支架的用途吗?我认为ScotlandDeliveryDate是一个以日期为值的变量。尝试删除该选项并写入var date=ScotlandDeliveryDate.toString().split(“”)[0];什么是苏格兰交货日期?A
日期
?函数?如果我可以计数,第25列将是
am
所在的位置或紧靠它前面的
0
。这是否正确?ScotlandDeliveryDate是什么?这是一节课吗?一个物体?也许你之前缺少了新的
new
?或者在ScotlandDeliveryDate之后应该有大括号,我很困惑。你是要Java代码还是JavaScript代码?你的问题到底是什么?如果我运行第一个示例,我得到的结果是05/02/19,但第二个函数失败:result:javax.script.ScriptException:ReferenceError:“Intl”未在第5行定义
Intl
包是标准之一,用于日期转换/操作的内置Javascript对象,在“Esko”环境中可能没有。这只意味着您必须手动进行转换。因此,在上面的
dateObject
值上,可以调用
dateObject.getDay()
。这将返回一个0-6序号,对应于一周中的某一天。您可以这样创建一个引用数组:
var dayNames=['Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'sunda然后您可以轻松地将该日数转换为正式名称。