uptime command is telling you the current time, followed by the length of time the system has been running. In your example this shows the system has been up for 90 days, 12 hours and 59 minutes.
who -b is giving you a date and time that corresponds to the same boot time. There's only a difference of seconds there, which I presume is the time taken between commands.
last reboot command uses the
/var/log/wtmp file to determine the last boot. This log file has been rotated since the last boot took place, so does not contain information about the last boot. There is likely an old version of wtmp, such as
/var/log/wtmp.1 that you can also query with:
last reboot -f /var/log/wtmp.1
Unfortunately it's unlikely that will contain details of your last reboot either due to the time frame.