#1 : 10/04-22 13:30 Matthias
Posts: 1
|
Hello,
I have a script here that works without problems in plain JS (run and see console window in https://jsfiddle.net/q9f7m6yg/), but it does nothing in AFR. Since I cannot figure out what goes wrong, I thought I'd ask here. Basically, it replaces a timestamp 2022-03-22 with the year and the week number: 2022-12 (week 12 this year). I assume I made a trivial mistake… Many thanks! var dateStr = item.newName.substring(0, 11); var year = dateStr.substring(0, 4); var rest = item.newName.substring(11); var tmpDate = new Date(dateStr); var d = new Date(Date.UTC(tmpDate.getFullYear(), tmpDate.getMonth(), tmpDate.getDate())); var dayNum = d.getUTCDay() || 7; d.setUTCDate(d.getUTCDate() + 4 - dayNum); var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)); var wNo = Math.ceil(((d - yearStart) / 86400000 + 1) / 7); return year + '-' + (wNo < 10 ? '0' : '') + wNo + ' ' + rest; |
#2 : 11/04-22 11:25 David Lee
Posts: 1125
|
The date "2022-03-22" contains only 10 characters. Replace the first line with:
var dateStr = item.newName.substring(0, 10); and the script will work. Alternatively, rather than re-inventing the wheel, you could have used the functions from: https://weeknumber.com/how-to/javascript Paste the code into the pre-batch script and then use: dateStr = item.newName.substring(0, 10); rest = item.newName.substring(11); date = new Date(dateStr); return date.getWeek() + "-" + date.getWeekYear() + " " + rest; |