Unix time is defined as the amount of seconds since the “Unix epoch,” which is 00:00:00 UTC on 1 January 1970.
It works both forwards and backwards — so technically you shouldn’t have trouble representing dates all the way back to Jan. 1, year 1, but the numbers would be negative and extremely large.
EDIT: PHP appears not to be able to handle those dates easily, at least according to one basic test. Both echo $time = strtotime("January 1, 1");
and echo $time = strtotime("January 1, 0001");
result in 978325200
.
I think the best option is, as you muse, categories. Whether or not you want to deal with custom categories might be a matter of preference, but I suspect normal categories with the names you lay out would work just fine.