I think this requires a script (Tools > Script Editor), such as the following: it checks for blank A cells where there is data in B, and puts today's date there. If you use it, be sure to change the timezone ("GMT" in the example) to yours (here's a list of timezone names).
One way to have this run is to add a trigger (Resources > Current project's triggers in the script editor) that will execute this "on change".
function fillDate() {
var sh = SpreadsheetApp.getActiveSheet();
var range = sh.getRange("A2:B"); // assuming A is the date column
var values = range.getValues();
for (var i=0; i<values.length; i++) {
if (!values[i][0] && values[i][1]) {
range.getCell(i+1, 1).setValue(Utilities.formatDate(new Date(), 'GMT', 'yyyy-MM-dd'));
}
}
}