Choose your language

Choose your login

Support

How can we help?

PaperCut's AI-generated content is continually improving, but it may still contain errors. Please verify as needed.

Lightbulb icon
Lightbulb icon

Here’s your answer

Sources:

* PaperCut is constantly working to improve the accuracy and quality of our AI-generated content. However, there may still be errors or inaccuracies, we appreciate your understanding and encourage verification when needed.

Lightbulb icon

Oops!

We currently don’t have an answer for this and our teams are working on resolving the issue. If you still need help,
User reading a resource

Popular resources

Conversation bubbles

Contact us

Date comparison functions (dateDiff)

This page applies to:

You can use a dateDiff function to compare dates and return the number of days between these dates. For example, you might want to charge a premium for orders that need to be completed faster than your standard processing time.

To calculate the difference between the creation date and the due date:

function dateDiff(d1, d2)
{
    var utcD1 = Date.UTC(d1.getFullYear(), d1.getMonth(), d1.getDate());
    var utcD2 = Date.UTC(d2.getFullYear(), d2.getMonth(), d2.getDate());
    return parseInt((utcD1 - utcD2) / (1000 * 60 * 60 * 24));
}	

Where:

  • d1 — the later date (due date)
  • d2 — the earlier date (creation date)

This function returns the time in milliseconds, so you need to convert milliseconds into days by dividing the return value by (1000 * 60 * 60 * 24).

Example

If you want to charge an extra $7.50 for orders that are required in 2 days or less, you would firstly define the above function to determine the difference between the creation date and due date. You would then define a deliveryCost variable in your estimateCost(order) function , as follows:

deliveryCost = order.deliveryOption.cost;

// Check if a due date has been selected
if (order.due) {

    var dueDate = new Date(order.due); 

    // Get the order creation date. First check that the order created date
    // is not null.
    var createdDate = order.created ? new Date(order.created) : new Date();

    // Find the difference in days between the order creation date, 
    // and when the order is due.
    var numberOfDays = dateDiff(dueDate, createdDate)

    // If the order is required within 2 days, add $7.50 to the cost.
    if (numberOfDays <= 2) {
        deliveryCost = deliveryCost + 7.5;
	}
}

Comments