javascript/jQuery date.toString("yyyy-MM-dd HH:mm:ss") 服务器之间不一致 - 相同的浏览器
javascript/jQuery date.toString("yyyy-MM-dd HH:mm:ss") inconsistent between servers - same browser
我刚刚从生产机器 (RedHat v5) 推送了我的 Web 应用程序。将它克隆到我的开发机器 (Max OSX 10.10) 和我即将成为新服务器 (Redhat v7) 的机器上。我在 javascript.
行收到错误
问题中的javascript语句是:
$('#actual_end_date_time').val(date.toString("yyyy-MM-dd HH:mm:ss"));
显示版本和格式化日期字符串的警报代码:
alert("jqVersion:"+$.fn.jquery+" formatted date:"+date.toString("yyyy-MM-dd HH:mm:ss"));
在开发和生产机器上。字符串是:
jqVersion:1.3.2 formatted date:2015-02-24 12:29:00
在即将生产的机器上,这个字符串是:
jqVersion:1.3.2 formatted date:Tue Feb 24 2015 12:33:55 GMT-0800 (PST)
好像没有应用任何格式。代码库是相同的,正在使用的 jQuery 版本是 v1.3.2(我试过 jQuery v2.1.3,但该版本的应用程序中有更多代码失败)。在所有情况下,网络浏览器都是相同的:Safari v8.0.3,网络浏览器的 OS 是 Mac OS X 10.10.2。稍后在代码中,数据通过以下方式评估:
Date.parseExact($('#actual_end_date_time').val(),"yyyy-MM-dd HH:mm:ss")'
给出控制台错误:
[Error] TypeError: undefined is not a function (evaluating 'Date.parseExact($('#actual_end_date_time').val(),"yyyy-MM-dd HH:mm:ss")')
caldisp_out_2 (index.php, line 769)
onSelect (calendar-setup.js, line 116)
callHandler (calendar.js, line 1281)
cellClick (calendar.js, line 709)
tableMouseUp (calendar.js, line 354)
然后失败(未存储日期对象,字符串可能是用户输入的)。
唯一不同的是新的生产机器。我的印象是客户端javascript 运行,并没有关心服务器是什么运行。
关于如何解决这个问题的任何想法?
您是否考虑过使用 moment.js 之类的库来为您进行格式化?可能是获得一致外观的方法。
http://momentjs.com/
我的解决方案是在需要日期格式之前再次让页面 运行 成为脚本源 date.js。该脚本现在包含在页面中两次。我不知道为什么只在这台 VM 服务器上需要它...这为问题贴上了创可贴,但没有解决它。
我刚刚从生产机器 (RedHat v5) 推送了我的 Web 应用程序。将它克隆到我的开发机器 (Max OSX 10.10) 和我即将成为新服务器 (Redhat v7) 的机器上。我在 javascript.
行收到错误问题中的javascript语句是:
$('#actual_end_date_time').val(date.toString("yyyy-MM-dd HH:mm:ss"));
显示版本和格式化日期字符串的警报代码:
alert("jqVersion:"+$.fn.jquery+" formatted date:"+date.toString("yyyy-MM-dd HH:mm:ss"));
在开发和生产机器上。字符串是:
jqVersion:1.3.2 formatted date:2015-02-24 12:29:00
在即将生产的机器上,这个字符串是:
jqVersion:1.3.2 formatted date:Tue Feb 24 2015 12:33:55 GMT-0800 (PST)
好像没有应用任何格式。代码库是相同的,正在使用的 jQuery 版本是 v1.3.2(我试过 jQuery v2.1.3,但该版本的应用程序中有更多代码失败)。在所有情况下,网络浏览器都是相同的:Safari v8.0.3,网络浏览器的 OS 是 Mac OS X 10.10.2。稍后在代码中,数据通过以下方式评估:
Date.parseExact($('#actual_end_date_time').val(),"yyyy-MM-dd HH:mm:ss")'
给出控制台错误:
[Error] TypeError: undefined is not a function (evaluating 'Date.parseExact($('#actual_end_date_time').val(),"yyyy-MM-dd HH:mm:ss")')
caldisp_out_2 (index.php, line 769)
onSelect (calendar-setup.js, line 116)
callHandler (calendar.js, line 1281)
cellClick (calendar.js, line 709)
tableMouseUp (calendar.js, line 354)
然后失败(未存储日期对象,字符串可能是用户输入的)。
唯一不同的是新的生产机器。我的印象是客户端javascript 运行,并没有关心服务器是什么运行。
关于如何解决这个问题的任何想法?
您是否考虑过使用 moment.js 之类的库来为您进行格式化?可能是获得一致外观的方法。 http://momentjs.com/
我的解决方案是在需要日期格式之前再次让页面 运行 成为脚本源 date.js。该脚本现在包含在页面中两次。我不知道为什么只在这台 VM 服务器上需要它...这为问题贴上了创可贴,但没有解决它。