我正在尝试从表单中解析DateItem响应,使其符合“M / D / YYYY”形式(即2014-08-05将转换为2014年8月5日)。由于ItemResponse是String类型,我编写了以下内容来操作它:
s = s.replace(/(\d{0,4})\-(\d{0,2})\-(\d{0,4})/,'$2/$3/$1');
var arr = s.split('/');
return parseInt(arr[0]) + '/' + parseInt(arr[1]) + '/' + parseInt(arr[2]);
但parseInt(arr[0])
几天前随机开始回归NaN。当需要解析时,arr[0]
不为null,而且是字符串类型。只有数组中的那个值才有问题。我解析单个数字删除前面的0。有什么想法吗?
答案 0 :(得分:3)
Why does parseInt return NAN for "08" string and return 7 for "07" string?
基本上,前导0表示它是八进制数。 8不是有效的八进制数字,因此是NaN。使用parseint(arr [0],10)指定基数。你可能想对arr [1]做同样的事情。
答案 1 :(得分:0)
您可能希望使用Utilities.formatDate(),这将以您选择的格式返回格式化的日期字符串。
对于你的例子:
var formattedDate = Utilities.formatDate(new Date(formDataDateValue), Session.getScriptTimeZone(), "M/d/yyyy");