XQuery has a set of useful functions for date conversion. But how to convert relative dates like “Today” and “Yesterday” into the actual date?
For example “Today, 17:33” should be converted to “2012-05-30”, and “Yesterday, 22:13” to “2012-05-29”.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
1. Parse the Date string
Parse the date string. I provided a small function which splits the word indicating the date off and parses it. I added some more convenient names for dates, but you can easily add more if neccessary, notice I convert to lower-case! It uses XQuery date and time functions for calculating the matching date.
2. Format the date
Now use the XQuery 3.0 function
format-date(...)(I hope your XQuery engine supports it, BaseX which I used for this example does) to format the date string like you need it:If it doesn’t, you will have to use
year-from-date(...)and according functions for month and day, use some number formatting and concatenate yourself.