OK, I think the problem is that if you have a language with a locale set, then vbdate uses strftime() to format the date rather than date(), and strftime() uses different format specifications. I think the solution is to set the 4th parameter of vbdate() to 'false' to make it use date(). There's also a 3rd parameter that says whether or not to use "yesterday" and "today" for recent dates, so you have to specify that as well (the default is 'false').