I have just noticed that if the date string is mentioned in "Y, F j" format then strtotime() function in PHP ignores the year while converting it to the Unix Timestamp and always return timestamp with current year
For example, Lets take 2 dates with same month and date but different years and run them through strtotime function
strtotime('2021, October 8') = 1665260460
strtotime('2014, October 8') = 1665260040
as you can see, the datse above are 7 years apart but their time stamp are same and if you try to convert that timestamp into human date with same "Y, F j" format then it returns 2022, October 8.
I tried searching for plausible explanation but I couldn't find any. Does anyone have any idea about why strtotime() behaves strangely for this particular date format? Also what can be the possible solution to this if I cannot use strtotime()