Способ Javascript не будет работать, если javascript недоступен, в то время как установка cookie на стороне сервера гарантированно будет работать, если пользователь явно не заблокировал cookie. Управлять файлами cookie в javascript (через document.cookie) не очень весело, тогда как PHP предоставляет $ _COOKIE (и $ _SESSION, который косвенно зависит от файлов cookie в наиболее распространенных шаблонах использования), с которыми гораздо проще иметь дело. К cookie-файлам, установленным в PHP, можно получить доступ в Javascript, если не указано иное (к которому я вернусь), и я не знаю, что будет с безопасными cookie-файлами (отправленными через https), как в javascript, но я не представляю, было бы приятно.
Cookies могут быть установлены HTTP, только если вы используете серверную технологию для их установки. Если этот параметр установлен, браузеры, поддерживающие только cookie HTTP, будут запрещать доступ к cookie для javascript. Это важно, потому что javascript можно использовать для отслеживания файлов cookie и их кражи, отправляя их перехватчику. Только файлы cookie HTTP предотвращают подобные злоупотребления.
Короче говоря, я бы использовал PHP для настройки вашего cookie.