The literature on PID control is huge and you could certainly find many resources capable of explaining the theory behind, but to stick to your question let's start from the central consideration that a PID does not control the error. The purpose of a PID is to control the plant instead, in order to meet some given requirements, among which very often you'll have specific performances of the error profile.
Under this new light, for the I part, the PID controller takes into account the past errors as an aggregate (the integral is a summation) to drive the system toward the target. How could an agent be capable of controlling past events that have already happened? It cannot, indeed, although it can extract very useful information out of them.
Likewise, when it comes down to the D part, we don't control future events but we rather make a prediction of how the error would look like in a small instant ahead of time based on the current information we know of it, in the hope that by adding this new piece we'll be better off at getting what we aim to, that is an improved plant's behavior.
In math terms, we can sort of demonstrate that by writing the effort $u\left(t\right)$ delivered by a PD controller in its standard form:
$$
u \left( t \right) = K \left(\ e \left( t \right) + T_d \frac{de \left( t \right)}{dt} \right).
$$
A Taylor series expansion of $e\left(t+T_d\right)$ gives:
$$
e \left( t+T_d \right) \approx e \left( t \right) + T_d \frac{de \left( t \right)}{dt},
$$
meaning that the control signal is proportional to an estimate of the control error at time $T_d$ ahead (into the future), where the estimate is obtained by linear extrapolation (see [1] at page 69).
And if you're now wondering whether a solely D controller may ever exist, disjointly from the P term, the answer is of course no! I believe you can easily come up with the correct explanation.
References
- K. Åström, T. Hägglung, PID Controllers, Theory, Design and Tuning, 2nd Edition