No problem with your English, but I do have a question about DESC. Your first question had merely ORDER BY DATE but later ones had ORDER BY DATE DESC. Which is it?
As far as an overall answer to your question, any sql dbms will act as if it did things in stages--i.e. as a pipeline. (If it doesn't do so, it's broken!) The WHERE-clause applies first, so that the rest of the query doesn't even see rows that don't meet the WHERE criteria. Next, the ORDER BY applies, so that it sorts only the rows that meet the selection criteria, rather than all the rows in the database. Finally, the LIMIT clause applies, to the selected rows only, and considering them in the order created by the SORT BY clause.
So, if you are saying
SELECT ... articles WHERE date > $cutoff ORDER BY date LIMIT 20
mysql will (in effect) first gather only those records whose date is past the cutoff, sort them in ASCENDING data order, and then give you the first 20 in that sequence, which will be the OLDEST 20 from those matching the cutoff.
If you wanted the most recent 20, then the correct thing is to ORDER DESC:
SELECT ... articles WHERE date > $cutoff ORDER BY date DESC LIMIT 20
The thing you are apparently worried about (i.e. a random or unspecified 20) could indeed happen, but only if you omit the ORDER BY clause:
SELECT ... articles WHERE date > $cutoff LIMIT 20
Finally, it's worth noting that, if there fewer than 20 rows that match the WHERE criteria, you will get fewer than 20 results.