У меня есть строка, состоящая из файлов cookie, введенных пользователем в форму. это код:
var monthCookie = getCookieValue("monthUserPref")
var dayCookie = getCookieValue("dayUserPref")
var hourCookie = getCookieValue("hourUserPref")
var minuteCookie = getCookieValue("minuteUserPref")
var ampmCookie = getCookieValue("ampmUserPref")
var currentYear = new Date().getFullYear();
var monthCookie = getMonth(monthCookie);
var currentEndDateForClockNoTZChange = "'"+currentYear+", "+monthCookie+", "+dayCookie+", "+hourCookie+", "+minuteCookie+", 0'"
var endTimeNoOffset = new Date(currentEndDateForClockNoTZChange)
var endTimeOffset = endTimeNoOffset.getTimezoneOffset();
alert("Put together time is "+currentEndDateForClockNoTZChange)
alert(endTimeNoOffset)
alert("month cookie reads '"+monthCookie+"', day cookie reads '"+dayCookie+"', hour cookie reads '"+hourCookie+"', minute cookie reads '"+minuteCookie+"', ampm cookie reads '"+ampmCookie+"'.");
alert("timer offset is "+endTimeOffset)
Первое предупреждение гласит "Put together time is '2022, 1, 11, 1, 11, 0' "
,
второе предупреждение говорит Invalid Date"
,
третье оповещение говорит, month cookie reads '1'
, day cookie reads '11'
,hour cookie reads '1'
,minute cookie reads '11'
,ampm cookie reads 'PM'."
,
четвертое оповещение говорит "Timer offset is NaN"
.
Должен ли я использовать другой формат или что-то в этом роде?
currentEndDateForClockNoTZChange
— это строка, подобная '2022, 1, 11, 1, 11, 0'
, которую невозможно разобрать по дате.
1. Сначала попробовал формат Date('December 17, 1995 03:24:00')
, ничего не делал, потом попробовал этот формат от developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
new Date('December 17, 1995 03:24:00')
возвращает допустимый объект даты
Сюда:
то, как вы хотите использовать конструктор Date(), касается целых аргументов, а не строки
let
monthCookie = Number(getCookieValue('monthUserPref'))
, dayCookie = Number(getCookieValue('dayUserPref'))
, hourCookie = Number(getCookieValue('hourUserPref'))
, minuteCookie = Number(getCookieValue('minuteUserPref'))
, ampmCookie = Number(getCookieValue('ampmUserPref'))
, currentYear = new Date().getFullYear()
, monthCookie = getMonth(monthCookie)
, endTimeNoOffset = new Date( currentYear, monthCookie, dayCookie, hourCookie, minuteCookie, 0 )
, endTimeOffset = endTimeNoOffset.getTimezoneOffset()
;
Я никогда не видел такого формата даты, как
2022, 1, 11, 1, 11, 0
. Если у вас уже есть отдельные компоненты, почему бы вам не передать их как независимые аргументы вместо того, чтобы упаковывать их в строку?