look into the USR_ACCESS component. This can be loaded with a 32b value during bitgen, and bitgen even has a date/time option built in.
In the HDL, the component has 3 output ports, two of which are unused. Just hook up the 1 remaining port somewhere in the HDL where the PC can access it. This part is up to you -- either some PCIe, ethernet, usb, rs232, etc... interface.
At a more complex scale, you can also use data2mem with BRAM to load BRAMs after/during bitgen. With some extra logic, you can store more than just date/time -- things like repository version, build tool versions, timing score, top-level generics, utilization levels, etc...
The advantage of these methods, especially with ISE, is that no source changes between builds.
edit --
https://www.xilinx.com/support/documentation/application_notes/xapp497_usr_access.pdf -- for USR_ACCESS